String-Array EOF prüfen

Ama

Mitglied
Hallo!
Ich verstehe meinen Fehler im Programm nicht, vielleicht kann mir einer von euch dabei helfen.

Code:
public static String[] pruefen()
	{
		String[] test = null;
		try
		{
		if((test = reader.readLine().split("\n")).length == 0)   // habe es auch mit == null versucht
			{
				setZeile3(false);
				EnglishSort(arr);
			}
		} catch (IOException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return test;
	}


ich will in der Methode prüfen ob man beim String-Array schon am ende ist und falls ja, soll er eine boolean setzen und in eine andere Methode springen, jedoch haut es mir sobald ich EOF bin eine Nullpointer-Exception (Throwable).

Hat vielleicht einer nen Tipp wie ich das leichter lösen könnte?^^ pls

mfg. Ama
 
Die Lösung findest du in der API
http://download.oracle.com/javase/1.4.2/docs/api/java/io/BufferedReader.html#readLine%28%29 hat gesagt.:
A String containing the contents of the line, not including any line-termination characters, or null if the end of the stream has been reached
 
Du liest Zeilen, welche [c]\n[/c] beinhalten? Glaub ich dir - auch unter Windows (mit [c]\r\n[/c]) - irgendwie nicht so ganz... Wie sehen die Werte, welche du einliest? Was willst du daraus machen?
 
@faetzminator: tippfehler \r\n stimmt schon...!

@Eikeb: ich versteh noch immer nicht was der fehler ist..^^ es ist mir klar, dass am ende NULL is aber worin mein fehler liegt?!?!

also ich will aus nem textfile wörter auslesen und diese sind mit \r\n getrennt:

z.B.:
mein
haus
ball

und diese wörter will ich in ein array speichern und anschließend alphabetisch ordnen...
es funktioniert schon alles bis auf das einlesen bis zum schluss des files, denn am ende = exception ...-.-
 
Java:
reader.readLine().split("\n")
readLine liefert am fileende null, auf null willst du dann split aufrufen und es knallt.
 
Ich will darauf heraus, dass du entweder den gesamten Content lesen und manuell splitten musst oder aber nur [c]readLine()[/c] ohne [c]split()[/c] verwenden musst. Ersteres, wenn das Encoding nicht dem des Betriebsystems entspricht. Aber da gäbs sicher auch noch einen einfacheren Weg. Also einfach:
Java:
String line;
while ((line = reader.readLine()) != null) {
    // ...
}
 

Zurück
Oben