【问题标题】:Appending one text file to another in Java在 Java 中将一个文本文件附加到另一个文本文件
【发布时间】:2018-02-07 14:13:35
【问题描述】:

晚上好,

我对在这里提问完全陌生,如果我做错了,请见谅。 我正在尝试将一个完整的 .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

任何帮助、提示、指示和答案都将不胜感激!

【问题讨论】:

    标签: java file text append copying


    【解决方案1】:

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

    在这里查看File Writer - 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);
    
                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) {
            }
        }
    }
    

    输出

    测试 2 00002 BCOM
    测试 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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-06
      • 2011-07-24
      • 2021-03-09
      • 2019-08-15
      • 2013-04-26
      • 2014-04-20
      • 2013-11-09
      • 1970-01-01
      相关资源
      最近更新 更多