我試圖從文件中刪除特定行。但我在從文本文件中刪除特定行時遇到了問題。讓我們說,我的文本文件,我想下面的刪除藍莓文件中:從文本文件中刪除特定行
舊列表的文本文件:
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設置爲用戶輸入的行。 –