1

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

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

寻找一种方法来做到这一点,而不必创建中间的第二个文件,并且如果可能的话只对现有文件进行修改。

4

3 回答 3

0

首先读取文件内容,将新行添加到 like contents = newLine + contents,然后将新内容写入同一文件(不要附加)。

于 2013-05-13T04:47:10.657 回答
-1

嗯,三种方法,可以帮助你

1.

//true: 是追加文本到文件 FileWriter write = new FileWriter("file_path",true); writer.write(内容);

  1. //打开randomFile and "rw"
    randomFile = new RandomAccessFile("file_path", "rw");
    // 文件长度
    long fileLength = randomFile.length();
    //指向结束索引 randomFile.seek(fileLength);
    //写入randomFile.writeBytes(content);

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

于 2013-05-13T04:46:28.430 回答
-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();

    }
于 2013-05-13T05:58:28.597 回答