# Matrix vom Typ Double aus .txt lesen und in ein Array speich



## Sander_O (10. Mai 2008)

Hallo Leute,

ich bin absoluter Java Neuling. Könnt ihr mir vielleicht trotzdem helfen? ich sitze seit Donnerstag bei dem schönen Wetter an folgendem Problem: ich möchte aus einer Datei: Daten.txt Double Werte auslesen und diese in ein Feld speichern. 
Die Werte sollten in dem Feld auch den Typ double besitzen.(Dabei wäre es egal ob das Feld 2Dimensional wird oder ob es z. B. ein Feld Zeile und ein Feld Spalte wird)

Es soll aus der Datei eine Matrix von 4x4 ausgelesen werden.

Die Datei Daten.txt sieht wie folgt aus: (eine Trennung zwischen den Werten ist durch einen Leerschritt gegeben)

8 -12.25 13 1 -5.1 6.9 -7.3 -8.4 -9.111 -77.342 33.12
8 16 2 -7 -9 -9.675868 -8 -9.776 99 76 1 6 4
-1.3 12 13 15 77 -99 -56.56
5 53 66 2 -7 -9 -9.675868
9 -8.1 -7.3

also ich hätte folgende Matrix gerne in ein Feld   

8 -12.25 13 1
8 16 2 -7
-1.3 12 13 15
5 53 66 2


Ich hab mich auch schon versucht mit Hilfe anderer Beispiele dieses zu realisieren. Jedoch sind diese Versuche kläglich gescheitert. Hab rausbekommen, dass es keine Operation gibt um int oder double aus einem .txt File auszulesen gibt...

ich möchte hier lieber nicht meinen Quellcode posten da dieser lediglich verwirren wird. Ich habe davon auch schon so 10 Versionen und bin schon selbst völlig mischugge.

Ich hoffe mir kann jemand bei meinem Problem helfen. 

Gruß Oliver


----------



## Gelöschtes Mitglied 5909 (10. Mai 2008)

1. Zeile einlesen
2. splitten mit string.split()
3. double d = Double.parseDouble(String s)
4. array[0][0] = d;

glücklich sein


----------



## Gelöschtes Mitglied 5909 (10. Mai 2008)

ich bin mal so frei und helf dir n bischen:


```
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

// MatrixReader.java
// Project: test
// Author:  Liar
// 10.05.2008 17:28:23

/**
 * @author Liar
 */
public class MatrixReader {

	public double[][] read(String file, int dim) throws IOException {
		BufferedReader r = new BufferedReader(new FileReader(file));
		double[][] matrix = new double[dim][dim];
		String line = "";
		for (int i = 0; (line = r.readLine()) != null && i < dim; i++) {
			String[] split = line.split(" ");
			if (split != null && split.length >= dim) {
				for (int j = 0; j < dim; j++) {
					matrix[i][j] = Double.parseDouble(split[j]);
				}
			}
		}
		r.close();
		return matrix;
	}

	public static void main(String[] args) throws IOException {
		MatrixReader mr = new MatrixReader();
		double[][] matrix = mr.read("matrix.txt", 4);
		for (int i = 0; i < matrix[0].length; i++) {
			for (int j = 0; j < matrix.length; j++) {
				System.out.printf("%f ", matrix[i][j]);
			}
			System.out.println();
		}
	}

}
```

der code liest allerdings nur eine einzige matrix, d.h. wenn rechts (rest von string split) oder drunter noch welche sind und du die auch brauchst musst du dich selber drum kümmern (sprich den reader offen lassen, weiterlesen - bei string split auf die indizes aufpassen). Hast jetzt hoff ich mal einen ansatzpunkt.


----------



## Sander_O (10. Mai 2008)

Vielen Dank für die schnelle Hilfe raiL, ja den Rest bekomme ich hoffentlich alleine hin. Also noch ein schönes WE.


Gruß Oliver


----------

