重写txt文件中的特定行

时间:2018-11-08 18:01:11

标签: java

我正在尝试重写txt文件中包含学生详细信息的行。文件中将显示学生的详细信息列表,例如:

  • Name1,10
  • Name2,20
  • Name3,30

我试图使用BufferedReader将Name2,20重写为Name2,13,以找到具有Name2的行。还有一个BufferedWriter用新文本替换该行,但事实证明代码会将我的整个txt文件写为null。

这是我的代码:

String lineText;
String newLine = "Name,age";
    try {
        BufferedReader br = new BufferedReader(new FileReader(path));
        BufferedWriter bw = new BufferedWriter(new FileWriter(path,false));
        while ((lineText = br.readLine()) != null){
             System.out.println(">" + lineText);
            String studentData[] = lineText.split(",");
            if(studentData[0].equals(Name2)){
                bw.write(newLine);
            }
            System.out.println(lineText);
        }
        br.close();
        bw.close();

        }
        catch (IOException e) {
            e.printStackTrace();
        }

有人可以告诉我如何在txt文件中重写特定行吗?

1 个答案:

答案 0 :(得分:-1)

最简单的方法是读取整个文件,并将其存储在变量中。读取当前文件时替换有问题的行。

类似的东西:

String lineText;
String newLine = "Name,age";
try {
    BufferedReader br = new BufferedReader(new FileReader(path));
    BufferedWriter bw = new BufferedWriter(new FileWriter(path,false));
    String currentFileContents = "";
    while ((lineText = br.readLine()) != null){
        System.out.println(">" + lineText);
        String studentData[] = lineText.split(",");
        if(studentData[0].equals("Name2")){
            currentFileContents += newLine;
        } else {
            currentFileContents += lineText;
        }
    }

    bw.write(currentFileContents);
    br.close();
    bw.close();

} catch (IOException e) {
    e.printStackTrace();
}