bufferedReader -> String[]

  • Themenstarter Themenstarter Gast
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gast

Gast
hallo,

ich möchte eine Datei mit BufferedReader auslesen und in einen StringArray (oder normales Array ???:L ) schreiben.

Leider habe ich die BufferedReader Geschichte noch nicht sonderlich drauf, deshalb wollte ich ein Beispielprogramm ableiten. Aber das gelingt mir nicht...weil ich ja vorher das Array initialisieren müsste.

Kann mir jmd sagen, wie ich mit bufferedREader in ein Array schreiben kann?

Code:
try
		{
			FileInputStream fis 	= new FileInputStream("testfile1.txt");
			InputStreamReader isr 	= new InputStreamReader(fis);
			BufferedReader bufr		= new BufferedReader(isr);

//			die erste Zeile wird eingelesen
			String sLine = bufr.readLine();
			int[] 
//			lies alle Zeile aus, bis keine mehr vorhanden sind.
//			falls Datei leer, überspringe diesen Programmabschnitt
			int zaehler = 0;
			while (sLine != null){
				System.out.println(sLine);
//				schreibe in' Array
				sLine = bufr.readLine();
				zaehler++;
			}
			bufr.close();
					}
		catch (IOException e){
			System.out.println("Error reading file!");
 
stringArray[zaeher] = sLine;

aber da müsstest du vorher besser die Anzahl der Zeilen kennen,
schreibe die Zeilen lieber in eine Liste und danach in ein Array
 
genau das war ja mein Problem, dass ich vorher die Anzahl der Zeilen nicht kenne.

Wie schreibe ich in eine Liste?
Wie mache ich danach aus der Liste ein Array?

danke
 
bitte bitte, ist echt wichtig,

ich habe List<String> sList = bufferedReader; probiert; aber das funktioniert nicht.

Wie schreibe ich einen bufferedReader String in eine Liste.

und wie mache ich später aus einer Liste ein StringArray?
 
Code:
List<String> list = new ArrayList<String>();
while ((line = in.readLine() != null)
list.add(line);
...
String[] lines = list.toArray();
 
Das hier sollte funktionieren. (Ohne Gewähr)
Du musst natürlich noch die benötigten Klassen importieren. Das müsste sich mit
Code:
import java.io.*;
import java.util.ArrayList;
erledigen lassen.

Code:
try {
	BufferedInputStream bufr = new BufferedInputStream( new FileInputStream("testfile1.txt") );
	
	// lies alle Zeile aus, bis keine mehr vorhanden sind.
	// falls Datei leer, überspringe diesen Programmabschnitt
	int zaehler = 0;
	ArrayList<String> liste = new ArrayList<String>();
	for ( String line; (line = bufr.readLine()) != null; zaehler++ ){
		System.out.println( line );
		// schreibe in ArrayList
		liste.add( line );
	}
	
	bufr.close();

	// ArrayList in String-Array umwandeln
	// Bin nicht mehr sicher ob hier Type-Casting wirklich noetig ist
	String[] filecontent = (String[]) liste.toArray();
}
 
hallo,
vielen Dank soweit.

Leider gibt es in Zeile 8 ein Problem.
bufr.readline() is undefined for BufferedInputStream.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben