阅读文本文件和打印图形

时间:2015-12-26 13:23:21

标签: java file input output graph-algorithm

我有以下文本文件,其中包含以下结构中的数据: 第一行是板的高度和宽度。 该文件的每个后续行包含四个整数,用于描述电路板中的块:块的高度和宽度(均大于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

1 个答案:

答案 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/