我有以下文本文件,其中包含以下结构中的数据: 第一行是板的高度和宽度。 该文件的每个后续行包含四个整数,用于描述电路板中的块:块的高度和宽度(均大于0),以及块左上角的行和列。 我想编写一个读取文件的程序,并在控制台上打印所有板卡。有人能指出我正确的方向吗?
文本文件的内容:
5,4
2,1,0,0
2,2,0,1
2,1,0,3
2,1,2,0
2,1,2,3
1,2,2,1
1,1,3,1
1,1,3,2
1,1,4,0
1,1,4,3
这是最终的结果我打算实现一个大板,上面有10个小块,大小不同enter image description here 到目前为止,我已尝试过这段代码:
import java.io.*;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
public class readInput {
public static void main(String[] args) throws FileNotFoundException {
Scanner s = new Scanner(new
File("Fiepath"));
ArrayList<Integer>blocklist=new ArrayList<>();
while (s.hasNext()){
if(s.hasNextInt())
{
blocklist.add(s.nextInt());
} else {
s.next();
}
}
s.close();
System.out.println(blocklist);
}
}
但它只在控制台上打印[4]:如何让它打印所有行并将它们存储在arrayList中?帮助
[4]
处理完成,退出代码为0
答案 0 :(得分:1)
对于阅读文件,您可以使用Scanner,它易于使用但效率低下。逐行读取,您可能希望使用像split这样的String函数来获取每行的值并进行一些记录以跟踪数据,因此您可能希望有一个数组来跟踪所有的正方形。我建议您在浏览文件时继续创建Rectangle2D对象并继续存储它们。完成文件后,使用Swing API创建一个JFrame来显示您喜欢的方块。
https://docs.oracle.com/javase/tutorial/2d/geometry/primitives.html https://docs.oracle.com/javase/tutorial/uiswing/start/