Schleife bricht plötzlich ohne Grund ab

Status
Nicht offen für weitere Antworten.

Lay-C

Aktives Mitglied
Hallo
Ich arbeite gerade an einem Eclipse-Plugin, welches unter anderem eine XML-Datei schreibt, bzw aus ihr liest.
Nun soll mit einer Schleife ein bestimmter wert gesucht werden und durch einen anderen ersetzt.
Es hat alles funktioniert, bis ich einiges geändert habe, was nun aber alles wieder zurückgesetzt ist.
Die Schleife bricht immer ab sobald help auf 1 gesetzt wird.

[HIGHLIGHT="Java"]try
{
f = new BufferedReader(new FileReader(xmlpath));
String c;
while(f.ready()) {
c = f.readLine();
if(help == 0) {
fileinhalt += c+nl;
}
if(help == 1) {
fileinhalt += "\t\t<value>"+selected+"</value>"+nl;
help = 0;
}
if(c.equals("\t\t<name>"+name+"</name>")) {
help = 1;
}
}
}
catch ( IOException e ) {
System.err.println( "Error reading file!" );
}
finally {
try { f.close(); } catch ( Exception e ) { }
}[/HIGHLIGHT]
 
Zuletzt bearbeitet von einem Moderator:
nochmal von vorne, poste deinen Code mit System.out.println()-Aufrufen und das Log, und was dich vermuten läßt, dass ein Abbruch vorliegt,

hat das ganze was mit der Ausgabe von
> System.err.println( "Error reading file!" );
zu tun?
diese kommt relativ unabhängig von System.out.println, also kann viel früher erscheinen, obwohl eigentlich noch zig System.out.println-Zeilen kommen müssten,
schreibe das gesamte Log, auch deine Ausgaben, in System.err.println um, um eine korrekte Reihenfolge zu sehen

-------

teste alles auch, ohne help auf 1 zu setzen,
wenn an irgendeiner Stelle Abbruch ist, dann vielleicht unabhängig vom Zustand von help
 
Ohne den if-Bedingungen geht die Schleife durch.

Die Fehlermeldung kommt nicht...

mit System.out.println kommt:

Code:
<properties>
<property>
<name>NavText</name>
 
vor und hinter der Schleife gehört eine Ausgabe, ebenso ins catch und finally, vielleicht siehst du das System.err nur nicht
gib zu Beginn und Ende der Schleife den Wert für f.ready() aus

und poste bitte beide Code-Varianten + alle Ausgaben (gekürzt)
(für den Fall des Durchlaufs + des Abbruchs),
falls du noch an weiterer Aufklärung interessiert bist,
vielleicht gar den Inhalt der Datei, kannst ja die 10 entscheiden Zeilen als normalen Text posten, wenn nicht bereits gleich dem Log

-----

bei BufferedReader kann man ansonsten evtl. auch auf das ready() verzichten,
if gelesene Zeile != null ist die typische Bedingung
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben