Java Datei einlesen und Wörter splitten

maxih96

Newbie
Registriert
Dez. 2014
Beiträge
2
Hey Leute,

ich würde gerne eine .txt-Datei in Java einlesen und die Wörter(die mit ";" getrennt sind) splitten.
Da ich mich noch nicht all zu lange mit Java beschäftige suche ich hier mal Hilfe.

Hier mein Quellcode:

Code:
import java.io.FileReader;
import java.io.IOException;


public class FileStream {

	
	public static void main(String[] args) throws IOException{
		
		int i=0;
		
		FileReader datei = new FileReader("daten.txt");
		
		char[] c = new char[100];
		
		while((i = datei.read(c)) >=0){
			System.out.println("");
			System.out.println(c);
			//Hier möchte ich gerne die Daten,
			//die eingelesen werden mit einem ; splitten
		}
	}
}
 
Ich würde die Datei Zeilenweise lesen:
Code:
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
   String[] splitline = line.split(";");


}
br.close();
String[] splitline enthält alle Werte die in der Zeile gelesen wurden.
 
Hi,
ich würde einen BufferedReader verwenden. Der stellt die Funktion readline() zur Verfügung, womit eine komplette Zeile als String gelesen wird. Strings haben wiederum die Funktion split, die den String in ein Stringarray zerlegt.

MFG
Scree

edit: ich bin zu langsam ^^"
 
Einen String splitten kannst du mit der Methode split, die in String implementiert ist.

http://openbook.galileo-press.de/javainsel9/javainsel_04_008.htm#mj8173df624dd4e503133672215a4fb5b2

Was mir noch auffällt ist, dass du deine Methode sehr starr implementiert hast. So gibst du ihm direkt vor, dass deine Datei 100 Zeilen haben soll und er diese auch alle durch geht.

Ich empfehle dir hier einen dynamischeren Ansatz:

Code:
	private String[] readFromFile(String filename) {

		List<String> list = new ArrayList<String>();

		try (BufferedReader br = new BufferedReader(new FileReader(filename))) {

			String line = br.readLine();

			while (line != null) {

                                String[] temp = line.split(";");

                                for (String s: temp){
                                list.add(line);
                                }
				
                                line = br.readLine();
                        }

		} catch (IOException e) {
			e.printStackTrace();
		}


		String[] retList;
		retList = new String[list.size()];
		retList = list.toArray(retList);

		return retList;
	}
 
Zurück
Oben