【问题标题】:how to read a file line by line and append some string each line?如何逐行读取文件并在每行附加一些字符串?
【发布时间】:2013-04-28 16:03:09
【问题描述】:

我想打开一个文件,然后逐行读取。在某些行中,我想将一个字符串附加到这一行。这可能吗?

我有一个打开文件并读取它的代码,如下所示:

File file = new File("MyFile.txt");
BufferedReader bufRdr = new BufferedReader(new FileReader(file));

String line = null;

try {
    while((line = bufRdr.readLine()) != null)
    {
        // read line by line and append some string to the line

    }
} catch (IOException e) {
    // ...
}

但是如何将字符串附加到当前行并将其写入文件?

【问题讨论】:

  • 你必须使用临时文件。先写入临时文件,然后重命名。

标签: java file-io append


【解决方案1】:

创建新文件并继续写入该文件(当您逐行读取其他文件时)并进行所需的修改。然后删除现有文件,并为新创建的文件命名为已删除文件的名称。这就是我的处理方式。

这是确认此方法以及其他替代方法的链接。

Modify a .txt file in Java

【讨论】:

    【解决方案2】:
    1. readLines 将行读取到List<String> 并根据需要更改一些字符串(行)
    2. 新建临时文件
    3. 通过append向其写入行(或逐行)
    4. 删除旧文件
    5. 重命名

    【讨论】:

      【解决方案3】:

      当您逐行读取文件时。将您的文本附加到行并将其写入其他文件。比如说文件名不同,以后你可以重命名文件。

      就像

      try {
         while((line = bufRdr.readLine()) != null)
          {
          // read line by line and append some string to the line
          //pseudo code
          newline = line + "yourtext";
          outputstreamtootherfile.write(newline);
      
          }
      } 
      

      我认为你不可能同时读取和写入同一个文件,因为它持有读/写锁。

      谢谢

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-11-11
        • 1970-01-01
        • 2017-04-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-08
        • 1970-01-01
        相关资源
        最近更新 更多