追加一个文本文件到另一个在Java中
问题描述:
我是全新的,以问问题在这里,很抱歉,如果我这样做是错误的。 我想追加一个完整的.txt文件到另一个结尾,在一个新行,而不重写内容。
例如,我有这个在此时就把one.txt存盘
TEST 1 00001 BCOM
,我有这two.txt,
TEST 2 00001 BCOM
这是唯一的工作代码,我发现将复制/覆盖到另一个文件, 所有其他我复制,重写文件路径和名称,并试过,它不适用于我。我仍然是Java的初学者。
import java.io.*;
class CompileData {
public static void main(String args[]) {
FileReader fr = null;
FileWriter fw = null;
try {
fr = new FileReader("one.txt");
fw = new FileWriter("two.txt");
int c = fr.read();
while(c!=-1) {
fw.write(c);
c = fr.read();
}
} catch(IOException e) {
e.printStackTrace();
} finally {
close(fr);
close(fw);
}
}
public static void close(Closeable stream) {
try {
if (stream != null) {
stream.close();
}
} catch(IOException e) {
}
}
}
有了这个代码,而不是让这对two.txt
TEST 1 00001 BCOM
TEST 2 00002 BCOM
我只得到了two.txt
TEST 1 00001 BCOM
任何帮助,技巧,三分球和答案将是欣赏!
答
为此,您可以使用FileWriter的append功能 - 通过调用接受布尔值的参数化构造函数是否追加。
import java.io.*;
class CompileData {
public static void main(String args[]) {
FileReader fr = null;
FileWriter fw = null;
try {
fr = new FileReader("one.txt");
fw = new FileWriter("two.txt",true);
输出
TEST 2 00002 BCOM
TEST 1 00001 BCOM
如果您想追加文件开始,您可以使用RandomAccessFile追加到所需的位置。更多细节在这里 - RandomAccessFile API
RandomAccessFile f = new RandomAccessFile(new File("two.txt"), "rw");
f.seek(0);
f.write("TEST 1 00001 BCOM".getBytes());
f.close();