我试图从文件中删除特定行。但我在从文本文件中删除特定行时遇到了问题。让我们说,我的文本文件,我想下面的删除蓝莓文件中:从文本文件中删除特定行
旧列表的文本文件:
Chocolate
Strawberry
Blueberry
Mango
新列表的文本文件:
Chocolate
Strawberry
Mango
我试图运行我的Java程序,当我输入删除,并没有删除文本文件中的行。
输出: 请删除: d 蓝莓 删除:蓝莓
当我打开我的文本文件,它继续以词“蓝莓”只循环。
文本文件:
Blueberry
Blueberry
Blueberry
Blueberry
Blueberry
Blueberry
Blueberry
Blueberry
我的问题是如何删除文本文件中的特定行?
这里是我的Java代码:
String input="Please delete: ";
System.out.println(input);
try
{
BufferedReader reader = new BufferedReader
(new InputStreamReader (System.in));
line = reader.readLine();
String inFile="list.txt";
String line = "";
while(!line.equals("x"))
{
switch(line)
{
case "d":
line = reader.readLine();
System.out.println("Remove: " + line);
String lineToRemove="";
FileWriter removeLine=new FileWriter(inFile);
BufferedWriter change=new BufferedWriter(removeLine);
PrintWriter replace=new PrintWriter(change);
while (line != null) {
if (!line.trim().equals(lineToRemove))
{
replace.println(line);
replace.flush();
}
}
replace.close();
change.close();
break;
}
System.out.println(input);
line = reader.readLine();
}
}
catch(Exception e){
System.out.println("Error!");
}
你只读过第一行,你永远不会读取文件中的任何其他行...... – MadProgrammer
我看不到你将'lineToRemove'设置为空白以外的任何地方。您应该将lineToRemove设置为用户输入的行。 –