晚上好,
我在这里提问是全新的,如果我做错了,那就很抱歉。 我试图将一个完整的.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
我只得到两个.txt
TEST 1 00001 BCOM
欢迎任何帮助,提示,指示和答案!
答案 0 :(得分:0)
为此,您可以使用FileWriter的append功能 - 通过调用接受boolean是否附加的参数化构造函数。
fw = new FileWriter("two.txt",true);
int c = fr.read(); fw.write("\r\n"); 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) { } } }
RandomAccessFile f = new RandomAccessFile(new File("two.txt"), "rw");
f.seek(0);
f.write("TEST 1 00001 BCOM".getBytes());
f.close();
输出
TEST 2 00002 BCOM
测试1 00001 BCOM
如果要在文件开头追加,可以使用RandomAccessFile附加到所需位置。更多细节 - RandomAccessFile API
span