Java:将文本文件内容复制到另一个而不替换

时间:2013-10-22 09:14:44

标签: java eclipse filereader filewriter

我想获取用户选择的一个文本文件的内容,并将其添加到另一个文本文件而不替换当前内容。例如:

更新:如何以编号方式将其添加到第二个文件?

TextFile1:

AAA BBB CCC

AAA BBB CCC

TextFile2 :(复制后)

  1. EEE FFF GGG

  2. AAA BBB CCC

  3. AAA BBB CCC

  4. 更新:我不得不删除我的代码,因为它可能被用于剽窃,这已得到回答所以我知道该怎么做,谢谢大家帮助我。

5 个答案:

答案 0 :(得分:2)

试试这个 你必须使用

new FileWriter(fileName,append);

这将以追加模式打开文件:

根据javadoc说它

参数: fileName String依赖于系统的文件名。

如果为true,则

追加布尔值,然后将数据写入文件的末尾而不是开头。

public static void main(String[] args) {
    FileReader Read = null;
    FileWriter Import = null;
    try {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter a file name: ");
        System.out.flush();
        String filename = scanner.nextLine();
        File file = new File(filename);
        Read = new FileReader(filename);
        Import = new FileWriter("songstuff.txt",true);
        int Rip = Read.read();

        while(Rip!=-1) {
            Import.write(Rip);
            Rip = Read.read();
        }


    } catch(IOException e) {
        e.printStackTrace();
    } finally {
        close(Read);
        close(Import);
    }
}


public static void close(Closeable stream) {
    try {
        if (stream != null) {
            stream.close();
        }
    } catch(IOException e) {
       // JavaProgram();
    }
}

答案 1 :(得分:1)

使用new FileWriter("songstuff.txt", true);附加到文件而不是覆盖它。

参考:FileWriter

答案 2 :(得分:1)

您可以使用Apache commons IO。

Apache Commons IO

示例:

import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

import org.apache.commons.io.FileUtils;

public class HelpTest {

    public static void main(String args[]) throws IOException, URISyntaxException {

        String inputFilename = "test.txt"; // get from the user

        //Im loading file from project
        //You might load from somewhere else...
        URI uri = HelpTest.class.getResource("/" + inputFilename).toURI();
        String fileString = FileUtils.readFileToString(new File(uri));

        // output file
        File outputFile = new File("C:\\test.txt");
        FileUtils.write(outputFile, fileString, true);
    }
}

答案 3 :(得分:0)

Append the file

在给定File对象的情况下构造FileWriter对象。如果第二个参数为true,则字节将写入文件的末尾而不是开头。

new FileWriter(fileName,true);

答案 4 :(得分:0)