#用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循环处,数据陷入一个循环,似乎没有合理的方法跳出循环。
我数据的存储形式:
我想把这个思路实现出来,还是说这个思路确实不行