骤跌 2023-06-06 22:24 采纳率: 75%
浏览 24
已结题

关于#java#的问题:那时候的想法是在将文本数据读取到集合前加一个判断方法,把想删除的数据不加入集合中,这样我重新读取集合时就达到了删除数据的目的

#用IO流实现一个图书系统的数据的删除。
#我原本思路是将文本中数据读取到数组集合中,在集合中用remove()方法来删除,然后再将集合数据输出到文本中覆盖原来的数据。事实证明确实可以。
在实际编写代码时,写着写着忘了利用remove方法。那时候的想法是在将文本数据读取到集合前加一个判断方法,把想删除的数据不加入集合中,这样我重新读取集合时就达到了删除数据的目的。
然后我就遇到了一个死循环的问题。


import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;

public class jsu1 {
    public static void main(String[] args) throws IOException {
        System.out.println("输入输出图书名称:");
        Scanner sc = new Scanner(System.in);
        String name =sc.nextLine();
        File file =new File("D:/IDEA-java/src/comt/删除操作/a.txt");
        FileReader FR = new FileReader(file);
        BufferedReader BR = new BufferedReader(FR);
        ArrayList<String> array =new ArrayList<>();
        String line;
        while((line = BR.readLine()) != null){
            String[] str;
            str=line.split(",");
            if(!name.equals(str[0])){
                array.add(str[0]+","+str[1]+","+str[2]);
                array.add("\n");
            }
        }
        BR.close();
        FR.close();
        FileWriter FW = new FileWriter(file);
        BufferedWriter BW  = new BufferedWriter(FW);
        BW.write(String.valueOf(array));
        BW.close();
        FW.close();
    }
}

在我while循环处,数据陷入一个循环,似乎没有合理的方法跳出循环。
我数据的存储形式:

img

我想把这个思路实现出来,还是说这个思路确实不行

  • 写回答

2条回答 默认 最新

  • 何心而为殇 2023-06-07 13:14
    关注

    可以再加个条件line长度不为0。你这样的话如果读出来是“”这样的也不为null。所以程序就不会停。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月13日
  • 创建了问题 6月6日