Ich versuche, eine bestimmte Zeile aus einer Datei zu entfernen. Aber ich habe ein Problem beim Löschen einer bestimmten Zeile aus der Textdatei. Lassen gesagt, ich meine Textdatei in der Datei entfernen Blueberry möge folgende:Entfernen einer bestimmten Zeile aus der Textdatei
Alte Liste Textdatei:
Chocolate
Strawberry
Blueberry
Mango
Neue Liste Textdatei:
Chocolate
Strawberry
Mango
Ich versuchte, meine Java zu laufen Programm, wenn ich zum Löschen eingeben und es die Zeile nicht aus der Textdatei entfernt.
Ausgang: Bitte löschen: d Blueberry Remove: Blueberry
Wenn ich meine Textdatei öffnen, halten Sie es mit dem Wort "Blueberry" nur auf Looping.
Textdatei:
Blueberry
Blueberry
Blueberry
Blueberry
Blueberry
Blueberry
Blueberry
Blueberry
Meine Frage ist, wie die spezifische Zeile aus der Textdatei löschen?
Hier ist mein Java-Code:
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!");
}
Sie lesen nur die erste Zeile, Sie lesen nie eine der anderen Zeilen in der Datei ... – MadProgrammer
Ich sehe nicht, wo Sie 'lineToRemove' auf etwas anderes als leer setzen. Sie sollten lineToRemove auf die Zeile setzen, die der Benutzer eingegeben hat. –