.txt lesen und in Array einfügen

Sergunja

Grünschnabel
Hallo
Ich will aus .txt file die Daten einlesen und in einem int array speichern. Die Daten haben solche Form:
1880 1881 1867.......
1882 1882 1860....
...
Wie mache ich, dass für jede zeile eine array entsteht und jedes wert in einem feld liegt ?Kann man das gleich im Integer werte speichern?
 
Hallo!

Here we are:

Code:
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.StringTokenizer;

public class FileCruncher {

	public static void main(String[] args) {
		try {
			BufferedReader br =
				new BufferedReader(new FileReader("c:/Numbers.txt"));

			List list = new ArrayList();

			String line = null;

			while ((line = br.readLine()) != null) {
				StringTokenizer tokenizer = new StringTokenizer(line, " ");
				int[] iA = new int[tokenizer.countTokens()];
				int cnt = 0;
				while (tokenizer.hasMoreElements()) {
					iA[cnt++] =
						Integer.parseInt((String) tokenizer.nextElement());
				}
				list.add(iA);
			}
			
			for(Iterator iter = list.iterator();iter.hasNext();){
				int[] iA = (int[])iter.next();
				for (int i = 0; i < iA.length; i++) {
					System.out.print(iA[i] + " ");
				}
				System.out.println();
			}

			br.close();

		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

Numbers.txt
Code:
1880 1881 1860 2332
1882 1882 1861 2321
1882 1882 1861 2321 1882 1882 1861 2321
1882 1882 1861 2321
1882 1882 1861 2321 1882 1882 1861 2321 1882 1882 1861 2321
1882 1882 1861 2321
1882 1882 1861 2321
1882 1882 1861 2321 1882 1882 1861 2321
82 18 181 231

HTH
Gruß Tom
 
Danke für deine Antwort
Aber noch eine Frage, wenn die Zahle in eine Zeile nicht durch Leerzeile getrennt sind, sonder durch Tab-Taste, Kann man das auch durch StringTokenizer machen
 
Sicher, dann mit
StringTokenizer tokenizer = new StringTokenizer(line,"\t");
anstelle von
StringTokenizer tokenizer = new StringTokenizer(line, " ");
 
Sergunja hat gesagt.:
Aber mit welche Methode greife ich auf einzelne Elemente im feld bei eine ArrayListe ?
Methode List.get(int index) liefert Dir ein Element als Object zum gegebenen Index. Dann musst Du es nur noch casten (z.B. in einen String).
Code:
for (int i = 0; i < list.size(); i++) {
    Object element = list.get(i);
    String stringValue = (String) element;            
}
 
Ja,Methode List.get(int index) liefert mir ein Element als Object. Hinter diesem Object steht aber ein int[] feld, da will zu greifen und aus feld lesen :confused:
 
Sergunja hat gesagt.:
Ja,Methode List.get(int index) liefert mir ein Element als Object. Hinter diesem Object steht aber ein int[] feld, da will zu greifen und aus feld lesen :confused:
Dann wandle es halt in ein int Array um:
Code:
Object element = list.get(i);
int[] intArray = (int[]) element;
 
Code:
Object element = list.get(i);
int[] intArray = (int[]) element;

oder einfach

Code:
int[] intArray = (int[]) list.get(i);
 
Zurück