einlesen aus einem file/Matrix erstellen

Glee

Grünschnabel
habe folgendes Problem.
ich weiß zwar wie ich aus einem file zeilenweise einlesen kann.
ich soll eine Matrix erstellen. mit Konstruktor Matrix(BufferedReader inbuf){}
im file das als Argument übergeben wird stehen zeilenweise natürliche zahlen. die erste soll sie Anzahl der Zeilen die 2. Zahl die Anzahl der Spalten. die restlichen Zahlen sollen in eine Matrix eingefügt werden. also ergibt zB.
2
3
1
2
3
4
5
6

123
456

es sollen keine negativen Zahlen akzeptiert werden sondern mit einer IllegalArgumentException quittiert werden...

kann mir jemand helfen
danke
 
Servus!

Code:
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;

/*
 * Created on 23.01.2004
 *
 * To change the template for this generated file go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */

/**
 * @author Administrator
 *
 * To change the template for this generated type comment go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
public class MatrixTest {

	/**
	 * 
	 */
	public MatrixTest() {
		super();
		// TODO Auto-generated constructor stub
	}

	public static void main(String[] args) {
		new MatrixTest().doIt();
	}

	/**
	 * 
	 */
	private void doIt() {
		// TODO Auto-generated method stub
		File file = new File("c:/matrix.txt");
		InputStream is = null;
		try {
			is = file.toURL().openStream();

			InputStreamReader isr = new InputStreamReader(is);
			BufferedReader br = new BufferedReader(isr);

			Matrix matrix = new Matrix(br);
			System.out.println(matrix);
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	class Matrix {

		private int[][] mtx;

		public Matrix(BufferedReader br) {
			try {
				int rows = Integer.parseInt(br.readLine());
				int columns = Integer.parseInt(br.readLine());

				mtx = new int[rows][columns];

				for (int i = 0; i < mtx.length; i++) {
					for (int j = 0; j < mtx[i].length; j++) {
						mtx[i][j] = Integer.parseInt(br.readLine());
					}
				}

			} catch (NumberFormatException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		/**
		 * @return
		 */
		public int[][] getMtx() {
			return mtx;
		}

		/**
		 * @param is
		 */
		public void setMtx(int[][] is) {
			mtx = is;
		}

		public String toString() {
			if (mtx == null)
				return "";

			else {

				StringBuffer sb = new StringBuffer();
				for (int i = 0; i < mtx.length; i++) {
					for (int j = 0; j < mtx[i].length; j++) {
						//System.out.print(mtx[i][j] + " ");
						sb.append(mtx[i][j] + " ");
					}
					//System.out.println();
					sb.append("\n");
				}
				return sb.toString();
			}

		}

	}

}

matrix.txt
Code:
2
4
1
2
3
4
5
6
7
8

Gruß Tom
 
Hallo,

ich habe ein ähnliches Problem. Leider habe ich absolut keine Ahnung von Java.
Folgendes Problem habe ich:
Ich soll eine Datei ("aliases") einlesen. Diese Datei beinhaltet Emailverteilerlisten.
hier ein Ausschnitt:

pc555: pc_1120,\ws_1010,\ws_1130,\pc1340,\nb1300,\nb1680,\pc1190
cady: cd_75
inter: inter_108, \inter_980, \pc_1160, \nb1570
krech: krech_94, \krech_87
ona: ona_23, \ona_970, \pc1330

Hast du oder sonst jemand vielleicht einen Lösungsvorschlag? Wie gesagt ich habe echt wenig ahnung von Java.

Vielen Dank schon mal.

Viele Grüße
Sebastian
 
Zurück