Ich schreibe einen Code, wo ich aktuelle Zeile und nächste Zeile lesen muss. Wenn die nächste Zeile eine Zeichenfolge enthält, muss ich die aktuelle Zeile löschen.nicht zu verstehen, wie das Ende der Datei zu finden
Aber wenn ich es mache, sobald es das EOF erreicht, zeigt es mir null Zeiger Ausnahme.
Unten ist mein Code.
private static void cleanUpTempFile(File temp) throws IOException {
FileReader fr = new FileReader(temp);
BufferedReader temp_in = new BufferedReader(fr);
String tempStr, tempStr1 = null;
int i = 0;
for (String next, footnotes = temp_in.readLine(); footnotes != null; footnotes = next) {
next = temp_in.readLine();
try {
if (next.contains("pb") && (next != null)) {
tempStr = footnotes;
tempStr1 = tempStr;
tempStr = tempStr1.replace(tempStr1, "");
footnotes = tempStr;
}
} catch (Exception e) {
System.out.println(e);
}
System.out.println(footnotes);
}
temp_in.close();
}
Es ist mir Fehler zu werfen, da, wenn es da kommt, wenn es um Ende geht, wird aktuelle Zeile letzte Zeile und next
Punkte zur nächsten Zeile zeigt, der null ist. Wie kann ich das sortieren?
Auch wenn es eine Ersetzung gibt, und leere Zeile erstellt wird, gibt es eine Möglichkeit, dass ich aufhören kann, eine neue Zeile zu erstellen.
versuchte ich in meinem if
tempStr1 = tempStr;
footnotes = tempStr1.replace("\\s", "");
den folgenden Code hinzufügen Aber das funktioniert nicht scheint.
Mit dem untenstehenden Code versucht und meine Konsole druckt null
.
private static void cleanUpTempFile(File temp) throws IOException {
FileReader fr = new FileReader(temp);
BufferedReader temp_in = new BufferedReader(fr);
String tempStr, tempStr1 = null;
String footnotes;
while ((footnotes = temp_in.readLine()) != null) {
String next;
while ((next = temp_in.readLine()) != null) {
if (next.contains("pb")) {
tempStr = footnotes;
tempStr1 = tempStr;
tempStr = tempStr1.replace(tempStr1, "");
footnotes = tempStr;
}
}
}
System.out.println(footnotes);
temp_in.close();
}
Danke.
Änderung next.contains ("Pb") && (nächste! = Null) zu && next.contains (nächsten! = Null) ("pb") –
Hallo @MohdAlomar, das funktioniert so wie erwartet. Aber ich habe ein paar Zweifel, die Veränderung der Paratheseinhalte macht einen Unterschied? – Rakesh
@Rakesh: Es ändert sich die * Reihenfolge *, die hier wichtig ist, da '&&' kurzgeschlossen ist. Der Wert "next! = Null" muss nicht in Klammern gesetzt werden. –