BufferedReader und .split()

dangario

Mitglied
Hallo allerseits!

Ich habe ein Bild im .ppm Format, welches ich in einem Java-Programm einlesen möchte um daraus die Höhe, Breite und den maximalen Farbwert des Bildes zu erhalten.
Dazu hab ich mir folgende Methode geschrieben:

Java:
import java.io.*;
import java.util.Arrays;
public class PPMReader {
	
	
	public static PPMImage read (File bild) throws IOException{
		
		String s;
		int width = 0;
		int height = 0;
		int maxVal = 0;
		String[] bildArray = null;
		
		BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(bild)));
		
		while(null != (s = br.readLine())){
			//Kommentare aus dem Bild entfernen
                        if (s.contains("#")) continue;
			else {bildArray = s.split("\\s+");}
			//Tests
			System.out.println(bildArray[0]);
			System.out.println(bildArray[1]);
			
			width = Integer.parseInt(bildArray[1]);
			height = Integer.parseInt(bildArray[2]);
			maxVal = Integer.parseInt(bildArray[3]);
		
		}
		PPMImage eingeleseneDatei = new PPMImage (width,height,maxVal);
		return eingeleseneDatei;	
	}	
}

Das einlesen und splitten scheint soweit zu funktionieren. Wenn ich mir mit Arrays.toString() das bildArray ausgeben lasse scheint es mir in Ordnung zu sein. Das System.out.println(bildArray[0] funktioniert auch noch, aber bei
System.out.println(bildArray[1]) bekomme ich eine ArrayIndexOutOfBounds Exception. jetzt kommt es mir so vor als hätte das bildArray nur ein großes Element in dem der ganz Text gespeichert ist? Wie kann es aber dann sein dass ich mit System.out.println(bildArray[0]); wie erwartet ein "P3" ausgegeben bekomme? mache ich beim splitten irgendwas falsch?
Danke im voraus, dangario
 

Michael...

Top Contributor
In der ersten Zeile steht nur P3, da gibt es kein Leerzeichen oder sonstige Whitespace und daher besitzt das von split() gelieferte Array keinen Index 1.

Grundsätzlich ist es immer gefährlich auf einen beliebigen Index eines Arrays zu zugreifen, ohne vor der dessen Existenz bzw. die Länge des Arrays geprüft zu haben.
 

dangario

Mitglied
ok, danke schon mal soweit :)
ich habe jetzt mal die Länge des Arrays überprüft und das funktioniert auch (die Länge ist halt seeehr lang, da es sich bei der Datei um ein richtiges Foto handelt). Jetzt möchte ich bei meinem Array den nächsten Index herausfinden, den es wieder gibt (das müsste ja dann die Breite sein). Wie kann ich nun überprüfen ob es in einen Index gibt oder nicht? Ich dachte immer wenn ein Index in einem Array nicht belegt ist, wird dort einfach "null" gespeicher, das ist aber wohl nicht so, oder habe ich was falsch verstanden?
gruß dangario
 

Sunchezz

Bekanntes Mitglied
"bildArray.length" solltest du die komplette anzahl der Felder auslesen können.

anders kannst du aber auch abfragen ob ein Feld null ist:
Code:
if (array[0] == null) {
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D BufferedReader/InputStreamReader/Split Java Basics - Anfänger-Themen 2
G BufferedReader - split-Methode Java Basics - Anfänger-Themen 6
berserkerdq2 Brauche ich while != -1, wenn ich immer einen BufferedReader verwende? Java Basics - Anfänger-Themen 8
S Erklärung BufferedReader und InputStreamReader Java Basics - Anfänger-Themen 4
Dimax BufferedReader.readLine().length() wirft NullPointer Java Basics - Anfänger-Themen 6
K Verständnisfrage Server/Client BufferedReader, PrintWriter Java Basics - Anfänger-Themen 2
M BufferedReader begrenzen Java Basics - Anfänger-Themen 3
M Java: BufferedReader liest nur die Hälfte der Text-Datei. Java Basics - Anfänger-Themen 4
O BufferedReader - Endlos Schleife Java Basics - Anfänger-Themen 2
K BufferedReader für IOTools ersetzen? Java Basics - Anfänger-Themen 17
M BufferedReader neue Zeile nach Knopfdruck Java Basics - Anfänger-Themen 9
H Unterschied BufferedReader und BufferedInputStream Java Basics - Anfänger-Themen 4
S BufferedReader TextFields Import Java Basics - Anfänger-Themen 5
B BufferedReader gibt Datei-Inhalt doppelt aus Java Basics - Anfänger-Themen 3
S BufferedReader nächste Zeile lesen Java Basics - Anfänger-Themen 4
E Erste Schritte txt.Datei mit BufferedReader einlesen und in 2D-Array abspeichern Java Basics - Anfänger-Themen 15
A Textdatei mit BufferedReader einlesen Java Basics - Anfänger-Themen 0
P Einlesen von Daten via BufferedReader Java Basics - Anfänger-Themen 4
S Einlesen BufferedReader Java Basics - Anfänger-Themen 5
M bufferedreader loop stoppen Java Basics - Anfänger-Themen 2
HoloYoitsu BufferedReader verhält sich seltsam Java Basics - Anfänger-Themen 10
I BufferedReader Text-Datei einlesen??? Java Basics - Anfänger-Themen 1
J Scanner & BufferedReader Java Basics - Anfänger-Themen 3
D Hilfe bei FileReader und BufferedReader Java Basics - Anfänger-Themen 2
V Fehlerhafte BufferedReader/switch Benutzung? Java Basics - Anfänger-Themen 2
L 2x BufferedReader in einem Programm Java Basics - Anfänger-Themen 1
K Einlesen einer txt von BufferedReader klappt nicht wie gewünscht Java Basics - Anfänger-Themen 12
N BufferedReader Java Basics - Anfänger-Themen 19
N Erste Zeile bei BufferedReader doppelt lesen? Java Basics - Anfänger-Themen 2
P Interpreter-Fehler Probleme mit java.io.BufferedReader Java Basics - Anfänger-Themen 6
M BufferedReader => TextField/Label Java Basics - Anfänger-Themen 8
B Input/Output Benutzereingabe mit BufferedReader Java Basics - Anfänger-Themen 7
B Erste Schritte BufferedReader mag nicht so recht Java Basics - Anfänger-Themen 4
B Input/Output Probleme mit BufferedReader Java Basics - Anfänger-Themen 4
J BufferedReader in Integer konvertieren Java Basics - Anfänger-Themen 7
T Input/Output StructuredFileReader extends BufferedReader Java Basics - Anfänger-Themen 6
P BufferedReader - als String[] speichern ? Java Basics - Anfänger-Themen 5
H Problem mit Regex in Verbindung mit BufferedReader Java Basics - Anfänger-Themen 4
J InputStreamReader + BufferedReader - keine Eingabemöglichkeit Java Basics - Anfänger-Themen 10
G Hilfe bei BufferedReader Java Basics - Anfänger-Themen 4
A Methoden BufferedReader durchzählen dann lesen Java Basics - Anfänger-Themen 11
T BufferedReader mehrere Zeilen einlesen Java Basics - Anfänger-Themen 4
S Erste Schritte Frage bezüglich "BufferedReader" Java Basics - Anfänger-Themen 3
A BufferedReader mit geöffneter Datei Java Basics - Anfänger-Themen 4
M Eigener InputStream will nicht mit BufferedReader Java Basics - Anfänger-Themen 3
H BufferedReader Zeilenauslesen & verwenden Java Basics - Anfänger-Themen 4
S BufferedReader liest was anderes als BufferedWriter schreibt Java Basics - Anfänger-Themen 5
F Eingabe von Ganzen Zahlen oder Strings mit BufferedReader Java Basics - Anfänger-Themen 10
C BufferedReader Java Basics - Anfänger-Themen 5
C Datentypen BufferedReader Java Basics - Anfänger-Themen 6
c_sidi90 BufferedReader Benzinverbrauch Java Basics - Anfänger-Themen 7
Antoras Datei laden mit BufferedReader sehr langsam Java Basics - Anfänger-Themen 7
J Bufferedreader nich von anfang an. Java Basics - Anfänger-Themen 14
M Position des BufferedReader Java Basics - Anfänger-Themen 6
J Socket - BufferedReader lese Problem Java Basics - Anfänger-Themen 2
U BufferedReader - mark Java Basics - Anfänger-Themen 6
Hamstinator Frage zu BufferedReader/FileReader Java Basics - Anfänger-Themen 4
K BufferedReader/Writer trotz Cache? Java Basics - Anfänger-Themen 9
MEETyA Zeilenumbrüche fehlen nach BufferedReader Java Basics - Anfänger-Themen 3
S BufferedReader in Methode übergeben Java Basics - Anfänger-Themen 2
C BufferedReader und FileWrite Java Basics - Anfänger-Themen 2
G Frage zu BufferedReader readline() Java Basics - Anfänger-Themen 3
M BufferedReader.readline() Unix/Windows Zeilenumbruch Java Basics - Anfänger-Themen 4
K zwei Funktionen, ein BufferedReader? Java Basics - Anfänger-Themen 8
K BufferedReader im Konstruktor // guter Stil ? Java Basics - Anfänger-Themen 2
hdi FileReader / BufferedReader langsam? Java Basics - Anfänger-Themen 3
N BufferedReader Verständnisproblem Java Basics - Anfänger-Themen 12
M Problem mit BufferedReader. Java Basics - Anfänger-Themen 10
N Probleme mit dem BufferedReader Seitenquelltext auszulesen Java Basics - Anfänger-Themen 6
G BufferedReader Problem Java Basics - Anfänger-Themen 5
G Probleme mit BufferedReader Java Basics - Anfänger-Themen 6
E Was ließt der BufferedReader eigentlich ein? Java Basics - Anfänger-Themen 3
N Problem mit BufferedReader und close() Java Basics - Anfänger-Themen 6
T NullPointerException bei BufferedReader Java Basics - Anfänger-Themen 4
G bufferedReader -> String[] Java Basics - Anfänger-Themen 8
J NullPointerException BufferedReader.readLine() Java Basics - Anfänger-Themen 4
S java.io.* BufferedReader to String Java Basics - Anfänger-Themen 12
T BufferedReader oder Prozess, wer hängt sich auf? Java Basics - Anfänger-Themen 6
J bufferedReader liest zu wenig daten ein Java Basics - Anfänger-Themen 6
G BufferedReader Problem Java Basics - Anfänger-Themen 10
W Bestimmten Pfad im BufferedReader Java Basics - Anfänger-Themen 4
P BufferedReader / FileReader Key und Values Java Basics - Anfänger-Themen 7
K FileReader BufferedReader & Arrays Java Basics - Anfänger-Themen 14
G Bufferedreader Java Basics - Anfänger-Themen 11
B BufferedReader für Char? Java Basics - Anfänger-Themen 6
K BufferedReader & BufferedWriter Java Basics - Anfänger-Themen 6
G BufferedReader Java Basics - Anfänger-Themen 6
V BufferedReader dann zusammenzählen Java Basics - Anfänger-Themen 3
G Hashset verknüpfen mit BufferedReader Java Basics - Anfänger-Themen 18
S BufferedReader (JFileChooser) Java Basics - Anfänger-Themen 2
P Komisches Verhalten von BufferedReader und readLine() Java Basics - Anfänger-Themen 2
R Probleme mit Bufferedreader Java Basics - Anfänger-Themen 11
R frage zur read()-Methode des BufferedReader Java Basics - Anfänger-Themen 2
M mit BufferedReader Zeile lesen Java Basics - Anfänger-Themen 11
L read() (von bufferedReader) abbrechen Java Basics - Anfänger-Themen 5
L unterbrechen von bufferedReader.read() Java Basics - Anfänger-Themen 4
R BufferedReader <-> InputStream Java Basics - Anfänger-Themen 3
G BufferedReader Java Basics - Anfänger-Themen 18
A BufferedReader Java Basics - Anfänger-Themen 6
C BufferedReader und BufferedWriter im Netzwerk Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben