在Java中将一个文本文件附加到另一个文本文件

时间:2017-08-30 01:48:56

标签: java file text append copying

晚上好,

我在这里提问是全新的,如果我做错了,那就很抱歉。 我试图将一个完整的.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

欢迎任何帮助,提示,指示和答案!

1 个答案:

答案 0 :(得分:0)

为此,您可以使用FileWriter的append功能 - 通过调用接受boolean是否附加的参数化构造函数。

点击此处File Writer - append

            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