char array[][] = new char[10][10];
Reader r = new BufferedReader(new InputStreamReader(new FileInputStream("c:\\file.txt")));
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
array[i][j] = (char) r.read();
}
r.skip(2); //Zeilenumbruch umgehen
}
public class LabyrinthImpl implements Labyrinth {
char[][] labyrinth=new char[15][15];
public LabyrinthImpl(String datei) throws IOException{
FileReader fr=new FileReader("labyrinth1.txt");
BufferedReader br=new BufferedReader(fr);
for(int i=0; i<labyrinth.length;i++){
for(int j=0; j<labyrinth[i].length;j++){
char zeile=(char)br.read();
labyrinth[i][j]=zeile;
System.out.print(labyrinth[i][j]);
}
}
}
15 15
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
Die Zeilen zu zählen ist kein Problem. Wie mache ich es bei den Spalten?
char[][] labyrinth;
public LabyrinthImpl(String datei) throws IOException {
FileReader fr = new FileReader(datei);
BufferedReader br = new BufferedReader(fr);
String zeile = br.readLine();
int spaltenzähler = zeile.length();
int zeilenzähler = 0;
while (zeile != null) {
zeile = br.readLine();
zeilenzähler++;
}
labyrinth=new char[zeilenzähler][spaltenzähler];
for(int i=0;i<labyrinth.length;i++){
for(int j=0;j<labyrinth[i].length;j++){
labyrinth[i][j]=(char)br.read();
System.out.print(labyrinth[i][j]);
}
System.out.println();
}
}
??????????
??????????
??????????
??????????
??????????
??????????
??????????
??????????
??????????
??????????
BufferedReader br = new BufferedReader(fr);
br.mark(/* irgendwas großes*/);
...
br.reset();
for (int i = 0; i < labyrinth.length; i++)
{
ArrayList<char[]> list = new ArrayList<>():
BufferedReader r = new BufferedReader(new FileReader("c:\\file.txt"));
String line = r.readLine();
while(line != null) {
list.add(line.toCharArray());
line = r.readLine();
}
r.close();
char[][] array = (char[][])list.toArray();
Das Problem ist, dass du ja schon alles eingelesen hast. Du musst irgendwie wieder an die erste Position springen, denn da wo du zu lesen versuchst, ist das Dokument eigentlich zu Ende. ^^
Das hättest du gemerkt, wenn du beachtet hättest, dass der Rückgabewert von read() -1 ist, falls die Datei ihr Ende erreicht hat!
Java:BufferedReader br = new BufferedReader(fr); br.mark(/* irgendwas großes*/); ... br.reset(); for (int i = 0; i < labyrinth.length; i++) {
hab ich nicht gnaz verstanden^^
hab ich nicht gnaz verstanden^^
und arraylist dürfen wir leider nicht benutzen -.-
#read
#mark
#reset
#mark
char[][] labyrinth;
public LabyrinthImpl(String datei) throws IOException {
FileReader fr = new FileReader(datei);
BufferedReader br = new BufferedReader(fr);
br.mark(500);
String zeile = br.readLine();
int spaltenzähler = zeile.length();
int zeilenzähler = 0;
while (zeile != null) {
zeile = br.readLine();
zeilenzähler++;
}
br.reset();
labyrinth = new char[spaltenzähler][zeilenzähler];
for (int i = 0; i < labyrinth.length; i++) {
for (int j = 0; j < labyrinth[i].length; j++) {
labyrinth[i][j] = (char) br.read();
System.out.print(labyrinth[i][j]);
}
}
}
** *******
* *
* ****** *
* ** *
***** ** E
* * ****
* * * *
* * **** *
* *
** *******
* *
* ****** *
* ** *
***** ** E
* * ****
* * * *
* * **** *
* * *
* ********
labyrinth = new char[spaltenzähler][zeilenzähler];
labyrinth = new char[zeilenzähler][spaltenzähler];