Input/Output BufferedReader

baung

Neues Mitglied
Hallo Java-Kenner :)

Ich habe folgendes Problem:

Seit einer Woche schlage ich mich mit dem BufferedReader rum. Ich muss aus einer Textdatei int-Werte in ein 2d-Array einlesen, doch mit read(), das nur einzelne Zahlen einlesen sollte, klappt es nicht. Die Zahlen im txt.Dokument sind alle zwischen 0 und 9, doch mein Array wird gefüllt mit willkürlichen Zahlen zwischen 10 und 50.
Ich habe eine Ahnung, dass es vielleicht mit der ASCII-Tabelle zu tun hat, bin mir jedoch nicht sicher und weiss auch nicht, wie das genau zusammenhängt :)

Ich habe schon jedes erdenkliche Forum durchstöbert, konnte doch nirgends eine Lösung für mein Problem finden.

Ich hoffe, Ihr könnt mir helfen. Schon im Voraus danke!
Grüsse baung
 
N

nillehammer

Gast
Deine Ahnung ist richtig. Du liest Zeichen ein. Das sind noch keine Zahlen. Du musst sie als Zeichen einlesen und die Zeichen umwandeln. Das nennt sich Parsen. Folgender BeispielCode als Anregung:
Java:
package playGround;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.Reader;
import java.util.Arrays;

public final class ReadArrayFromFile {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {

		final Reader numbersReader = new FileReader("<PfadZurTxtDatei>");
		final BufferedReader bufferedTxtReader = new BufferedReader(
				numbersReader);

		// Die Länge von Arrays muss bei der Erstellung gesetzt
		// werden. Sie muss also bekannt sein. Nehmen wir an,
		// das 2d-Array hätte 10 Zeilen.
		// Größere Flexibilität böte hier java.util.List
		final int[][] table = new int[10][];

		try {
			for (int lineNumber = 0; lineNumber < table.length; lineNumber++) {
				final String line = bufferedTxtReader.readLine();
				// In den Zeilen stehen die Zahlen durch , getrennt
				final String[] intStrings = line.split(",");
				final int[] numbers = parseStringArr(intStrings);
				table[lineNumber] = numbers;
			}

		} finally {
			bufferedTxtReader.close();
		}

		System.out.println(Arrays.deepToString(table));
	}

	private static int[] parseStringArr(final String[] intStrings) {

		final int[] result = new int[intStrings.length];
		for (int i = 0; i < result.length; i++) {
			result[i] = Integer.parseInt(intStrings[i]);
		}
		return result;
	}

}
 

baung

Neues Mitglied
Buoh danke pro2, das Problem hatte ich nun in 20 min gelöst, funktioniert bestens :) Hab einfach ne neue Funktion geschrieben, diesmal jedoch den Scanner verwendet.
Danke vielmals für eure Hilfe, will nicht wissen, wie lange ich noch an diesem BufferedReader gesessen wäre.

Aber auch danke für deine Mühe, nillehammer . Das mit final und private hatten wir noch nicht gehabt im Studium, oder besser gesagt, das muss ich noch aufarbeiten, darum habe ich mich für den Scanner entschieden :)

Grüsse baung
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Socket.setSoTimeout -> BufferedReader -> Default value Allgemeine Java-Themen 4
kodela Unterschiedliches Verhalten von BufferedReader Allgemeine Java-Themen 3
D BufferedReader bricht nach 1248 Iterationen ab Allgemeine Java-Themen 14
C BufferedReader/BufferedWriter schreibt nicht alle Bytes Allgemeine Java-Themen 2
C TCP Server und BufferedReader Leerstring im Stream? Allgemeine Java-Themen 5
A BufferedReader ohne System.in Allgemeine Java-Themen 9
J BufferedReader Datei einlesen Allgemeine Java-Themen 8
Messoras Der BufferedReader mag mich nicht Allgemeine Java-Themen 47
C Threading mit BufferedReader/InputStream & sockets Allgemeine Java-Themen 0
J BufferedReader OutOfMemory umgehen? Allgemeine Java-Themen 10
O BufferedReader von ganz unten anfangen zu lesen Allgemeine Java-Themen 7
S BufferedReader/PrintWriter an einer HTML Allgemeine Java-Themen 6
M BufferedReader: Vom Logfile zur Datenbank Allgemeine Java-Themen 6
S Null Pointer Exception bei BufferedReader Allgemeine Java-Themen 4
K BufferedReader.readLine erkennt Zeilenende nicht Allgemeine Java-Themen 11
D 'InputStreamReader' & 'BufferedReader' führen zu "cannot find symbol"-Fehler Allgemeine Java-Themen 3
D Scanner leer aber bufferedReader nicht?! Allgemeine Java-Themen 2
A bufferedReader readline, encoding Allgemeine Java-Themen 5
V wie bufferedreader.readline() unterbrechen? Allgemeine Java-Themen 4
Developer_X Java BufferedReader mit URL Allgemeine Java-Themen 5
D BufferedREader#readLine Allgemeine Java-Themen 20
Semox Fehler - Zuweisung aus BufferedReader an Variable Allgemeine Java-Themen 3
S Exception beim BufferedReader Allgemeine Java-Themen 3
J BufferedReader br.readLine(); Allgemeine Java-Themen 22
G getFilePointer in BufferedReader? Allgemeine Java-Themen 2
D (BufferedReader) inLine() "verschluckt" zeilen ? Allgemeine Java-Themen 2
M BufferedReader.read(char[] cbuf) liefert falsche Werte? Allgemeine Java-Themen 4
W Frage zu BufferedReader Allgemeine Java-Themen 2
conan2 BufferedReader.readLine() von anderem Thread aus beenden Allgemeine Java-Themen 4
K Wie kann ich einen BufferedReader beschleunigen? Allgemeine Java-Themen 4
N readLine() von BufferedReader hält das Programm fest/auf! Allgemeine Java-Themen 10
B while mit BufferedReader beenden Allgemeine Java-Themen 5
F Zu große Werte beim byteweisen Lesen mit BufferedReader.read Allgemeine Java-Themen 5
S BufferedReader problem Allgemeine Java-Themen 11
D BufferedReader in image umwandeln Allgemeine Java-Themen 3
M BufferedReader input - hängt sich auf Allgemeine Java-Themen 4
C Probleme mit URL und BufferedReader Allgemeine Java-Themen 6
C BufferedReader oder DataInputStream Allgemeine Java-Themen 4
M Store a String in a BufferedReader Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben