Matrix aus Datei einlesen?

PHP-Anfaenger

Grünschnabel
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
 
PHP:
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 ..
 
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:

Code:
try {
FileReader fr = new FileReader
("Dateiname")
StreamTokenizer sr = new StreamTokenizer(fr);
 
Hallo!

Wenn die einzelnen einsen und nullen nicht durch irgendwelche Zeichen getrennt sind brauchst du eigentlich keinen StringTokenizer:
Code:
/*
 * 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
 
Thomas Darimont hat gesagt.:
Hallo!

Wenn die einzelnen einsen und nullen nicht durch irgendwelche Zeichen getrennt sind brauchst du eigentlich keinen StringTokenizer:
Code:
/*
* 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

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ö
 
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;

PHP:
/**
 

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
 
Code:
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
 
Zurück