# Matrix aus Datei einlesen?



## PHP-Anfaenger (10. Januar 2005)

Hi!
Ich muss zuerst eine Matrix, die nur aus 1 und 0 besteht aus einer txt.Datei einlesen und ausgeben. Habe irgendwie mit dem BufferedReader herumexperimentiert, aber irgendwie  es nicht. Muss ich den StreamTokenizer benutzen?Könnte mir jemand helfen, wie ich am besten diese Matrixdatei einlesen kann?

Danke


----------



## teppi (10. Januar 2005)

```
import java.io.*;
  public static void main( String args[] )
  {
    String filename = "matrix.txt";
    
    byte buffer[] = new byte[ 4000 ];
    FileInputStream in = null;
    try
    {
      in = new FileInputStream( filename );
      int len = in.read( buffer, 0, 4000 );
      String str = new String( buffer, 0, len );
      System.out.println( str );
    }
    catch ( IOException e ) { System.out.println( e ); }
    finally
    {
      try {
        if ( in != null ) in.close();
      } catch (IOException e) {}
    }
  }
}
```

Und auf "str" halt den StringTokenizer anwenden ..


----------



## PHP-Anfaenger (10. Januar 2005)

Hi!
Vielen Dank für die schnelle Antwort. Gäbe es denn noch eine Alternative zur Anwendung des StringTokenizers(Teilen eines Streams in Teilstrings)

wäre folgende Implementierung dann richtig:


```
try {
FileReader fr = new FileReader
("Dateiname")
StreamTokenizer sr = new StreamTokenizer(fr);
```


----------



## teppi (10. Januar 2005)

Ja das sollte auch gehen ..


----------



## PHP-Anfaenger (10. Januar 2005)

Juhu


Danke!


----------



## Thomas Darimont (10. Januar 2005)

Hallo!

Wenn die einzelnen einsen und nullen nicht durch irgendwelche Zeichen  getrennt sind brauchst du eigentlich keinen StringTokenizer:

```
/*
 * Created on 10.01.2005@19:22:31
 *
 * TODO Licence info
 */
package de.tutorials;

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

/**
 * @author Administrator
 * 
 * TODO Explain me...
 */
public class MatrixReader {

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

			while ((line = br.readLine()) != null) {
				System.out.println(line);
			}

			br.close();

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

An den Ziffernwert kommst du mit: (int)line.charAt(idx)-48 wobei idx der Spalten. Index ist von 0 bis line.length();

Gruß Tom


----------



## PHP-Anfaenger (10. Januar 2005)

Thomas Darimont hat gesagt.:
			
		

> Hallo!
> 
> Wenn die einzelnen einsen und nullen nicht durch irgendwelche Zeichen getrennt sind brauchst du eigentlich keinen StringTokenizer:
> 
> ...


 
Vielen Dank nochmals an alle User hier,

die Matrix wird bei mir korrekt ausgegeben.Yeeeaaahh .Jetzt muss ich diese Matrix nur noch in einen Graphen umwandeln und ich muss die main-Methode noch etwas anpassaen bzw. besser strukturieren. 

Tschö


----------



## celloman (27. September 2007)

Moin

Habe die Matritzen eingelesen, wie muss ich weitermachen wenn ich anstell eines Zahles Beispiel 9 eine 1 schreiben möchte. und die Kommplette Datei in eine Andere Datei Speichern möchte

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


```
/**
 

public class Matrix {

        public static void main(String[] args) {

                   FileWriter fw = null;
	try {
	        BufferedReader br = new BufferedReader(new FileReader ("c:/matrix.fra"));
			String line;

                            fw = new FileWriter( "fileWriter.txt" );  

			while ((line = br.readLine()) != null) {
				System.out.println(line);
                                                          if ( br.read 9 == 1 )
			}

			br.close();

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

Will irgend wie nicht funktionieren


----------



## celloman (27. September 2007)

```
Versuche eine Matrixdatei zu öffnen, es soll bei jedem gelesener Zahl 9 eine 1 anstelle 9 schreiben, und es in eine andere Datei speichern.will aber nicht.Die Kommpletten Matritzen Sollen auch mit in eine Neue Datei geschrieben werden.



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


public class Matrix {

         public static void main(String[] args) {

          FileWriter fw = null;

	try {
	     BufferedReader br = new BufferedReader(new FileReader("c:/matrix.txt"));

                      if (br.read(9)==fw.write(1))
             
                      fw = new FileWriter( "Neuer Text.txt" ); 
		String line;

			while ((line = br.readLine()) != null) {
				System.out.println(line);
			}

			br.close();

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


Will nicht funktionieren :confused:


Help Please
```


----------

