如何在java中的现有文件的开头附加一个新行?

时间:2013-05-13 04:38:29

标签: java

假设我有一个位于/mypath/sampletext.txt的txt文件。如何在Java中使用以下内容将新行附加到文件的开头,同时保留原始文本文件的内容?:

String startStr ="--Start of File--";

寻找一种方法来执行此操作,而无需创建中间第二文件,并在可能的情况下仅对现有文件进行修改。

3 个答案:

答案 0 :(得分:0)

首先读取文件内容,将新行添加到contents = newLine + contents之类的新行,然后将新的conent写入同一文件中(不要追加)。

答案 1 :(得分:-1)

好吧,有三种方式可以帮到你

1

// true:将文字附加到fie         FileWriter write = new FileWriter(“file_path”,true);          writer.write(内容);

  1. //打开randomFile和“rw”
        randomFile = new RandomAccessFile(“file_path”,“rw”);
        //文件长度
        long fileLength = randomFile.length();
        //指向结束索引     randomFile.seek(文件长度);
        //写     randomFile.writeBytes(内容);

  2. BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file,true)));

     out.write(conent);

答案 2 :(得分:-2)

新答案已更新......

在这里,我使用了更多的FileIO类和可能是他们的一个已被弃用的API但是如果您了解Java FileIO类,则可以轻松修复它。

这里我在文件的开头添加新行,而不是将其附加到文件的末尾..

如果有任何问题请再次评论....

试试这个,我认为它会对你有帮助..

try
    {
        //Append new line in existing file.
        FileInputStream fr = new FileInputStream("onlineSoultion.txt");
        DataInputStream dr = new DataInputStream(fr);

        String startStr = "--Start of File--\n";
        //String startStr;

        while (dr.available() > 0) {
            startStr += dr.readLine();
            //System.out.println(startStr);
        }
        dr.close();
        fr.close();

        FileOutputStream writer = new FileOutputStream("onlineSoultion.txt");
        writer.write((new String()).getBytes());
        writer.close();

        PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("onlineSoultion.txt", true)));
        out.println(startStr);
        out.close();

    }