BufferedReader bfr = new BufferedReader(new FileReader("Data.txt"));
String line;
while ((line = bfr.readLine()) != null) {
System.out.println(line);
}
bfr.close();
所以我得到它来打印文本文件,但现在我想把它安排在一个二维数组中。 有什么帮助吗?
答案 0 :(得分:0)
java中有一个很棒的类,它叫做Scanner,可用于许多与流数据相关的事情。
File file = new File("data.txt");
try {
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
您可以将它用于文件。它将逐行读取。 在这里打印,但将其存储在数组中并完成!
答案 1 :(得分:0)
尝试制作一个ArrayList:
ArrayList<String> bob = new ArrayList<String>();
然后你可以去:
bob.add(line);
然后打印出来,你可以去:
for(int x = 0; x < bob.length; x++) {
System.out.println(bob[x]);
}
那应该有用。 :)
答案 2 :(得分:0)
文本到2D数组?有趣且非常普遍。正如之前的回答中提到的,扫描仪可能很有用,但是获取文本文件的方法很好;即使扫描仪可能具有更好的速度性能(进行一些研究。:P)
我解决这个问题的方法是在每个瓷砖(?)之间添加一个分隔符。例如:
1:1:1:1:1:1:1
1:0:1:0:0:0:1
1:0:0:0:1:0:1
1:1:1:1:1:1:1
这允许您抓取一条线,然后使用String.split(String delimiter)
方法将其拆分。正如LouisDev所说,扫描仪更好,所以我会用它:
File file = new File("data.txt");
try {
Scanner scanner = new Scanner(file);
int y = 0;
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
y++;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
因此,我们可以获取该行并将其存储到变量 y 中。这将在以下方法中使用,该方法显示收集字符串中的所有内容并将其存储到2D数组中的方法。实际上,这是你问题的答案。
File file = new File("data.txt");
try {
Scanner scanner = new Scanner(file);
int y = 0;
int[][] map = new int[methodParsedHeight][methodParsedWidth];
while(scanner.hasNextLine()) {
String line = scanner.nextLine();
String[] lineSplit = line.split(":");
for(int x = 0; x < lineSplit.length; x++ {
map[y][x] = Integer.parseInt(lineSplit[x]);
}
System.out.println(line);
y++;
}
return map;
} catch(FileNotFoundException e) {
e.printStackTrace();
}
这有效地解决了发生的问题。如果没有,请给我们评论!
贾罗德。