如何在文本文件的每一行之前和之后插入文本



下面是我的代码,它读取一个文件,然后将其内容写入一个新文件。我需要做的是在旧文件的每一行文本之间添加文本,并将其放入新文件中。在这段代码中,文件是作为一个整体读取的,那么我如何将其更改为逐行遍历并在每行之间添加文本呢?

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.List;
public class Webpage {
  public static String readTextFile(String fileName) throws IOException {
    String content = new String(Files.readAllBytes(Paths.get(fileName)));
    return content;
  }
  public static List<String> readTextFileByLines(String fileName)throws IOException {
    List<String> lines = Files.readAllLines(Paths.get(fileName));
    return lines;
  }
  public static void writeToTextFile(String fileName, String content)throws IOException {
    Files.write(Paths.get(fileName), content.getBytes(), StandardOpenOption.CREATE);
  }
} 

我认为您的readTextFileByLines可以满足您的需要。您可以遍历List,并在每行之前和之后写出您想要的内容。

如果必须使用readTextFile方法,可以使用split("\n")将单个大字符串(整个文件)转换为字符串数组,每行一个。

嗯。。。Split的文档(一个参数)表示,结果中不会包含尾随的空字符串。因此,如果输入文件的末尾可能包含空行,则应使用两个参数split和一个非常大的第二个参数:split("\n",Long.MAX_VALUE);

  1. 逐行阅读文本文件,并在需要的地方添加新行
  2. 将带有新行的读取值放入字符串中,每行用\n分隔
  3. 写入新的文本文件

如果您要做的是在每次前后用相同的字符串重写每一行,则可以使用以下代码:

public static void main(String[] args) throws IOException {
    addLines("/Users/Hamish/Desktop/file1.txt", "/Users/Hamish/Desktop/file2.txt");
}
public static void addLines(String fileName, String secondFile) throws IOException {
    File file = new File(fileName);
    FileReader fr = new FileReader(file);
    BufferedReader br = new BufferedReader(fr);
    String line = null;
    PrintWriter writer = new PrintWriter(secondFile, "UTF-8");
    while ((line = br.readLine()) != null) {
        writer.println("Random line before");
        writer.println(line);
        writer.println("Random line after");
    }
    br.close();
    writer.close();
}

实际上,它逐行读取txt文件,每行前后都会打印您指定的内容。

如果你想在最后你也可以写:

file.delete();

以删除第一个文件。

如果你想在每行之前和之后写的内容都很具体,那么不幸的是,我帮不了你。

最新更新