Java 通过扫描仪将.txt重写为数组

Java 通过扫描仪将.txt重写为数组,java,arrays,Java,Arrays,我的问题是,我必须逐个线程将.txt文件重写到一个数组中,然后是下一个线程,但我在任务的第一部分遇到了困难 public int checkSize()负责计算数组的大小,因为文本文件由大约10000行组成。整个过程将完全如下所示: [产品编号][重量] 所以我决定数一数行数,创建这样一个表格,一个我保存ID的地方,在重量旁边,因为以后我将不得不数一数 此外,每200条记录必须出现在消息中。问题是在开始这部分之后。。。什么也没有发生。如果我正确理解了您的问题,请尝试将可运行更改为可调用和公共无效

我的问题是,我必须逐个线程将.txt文件重写到一个数组中,然后是下一个线程,但我在任务的第一部分遇到了困难

public int checkSize()负责计算数组的大小,因为文本文件由大约10000行组成。整个过程将完全如下所示:

[产品编号][重量]

所以我决定数一数行数,创建这样一个表格,一个我保存ID的地方,在重量旁边,因为以后我将不得不数一数


此外,每200条记录必须出现在消息中。问题是在开始这部分之后。。。什么也没有发生。

如果我正确理解了您的问题,请尝试将
可运行
更改为
可调用
公共无效运行()
更改为
公共int[]call()
并添加
返回材料选项卡在末尾。

而不是

class Materials implements Runnable {
    String path;

    public Materials(String path) {
        this.path = path;
    }

    public int checkSize() throws FileNotFoundException {
        Scanner sc = new Scanner(new File(path));
        int size = 0;
            while(sc.hasNextLine()) size++;
        sc.close();
        return size;
    }

    public void run() {
    try {
        Scanner sc = new Scanner (new File(path));
        int[][] materialsTab = new int[1][checkSize()];
        int x=0, count=0;
        while(sc.hasNext()){
            count++;

            materialsTab[x][0] = sc.nextInt();
            materialsTab[x][1] = sc.nextInt();
            x++;
            System.out.println("Im working!");

            if(count%200 == 0) System.out.println("Creat " + count + " objects");
    }
    sc.close();

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }


    }
}
考虑使用大致如下的方法:

int[][] materialsTab ...
List materialsTab=new ArrayList();
点材料=新点();
mat.x=sc.nextInt();
如果(!sc.hasNext())
打破
材料y=sc.nextInt();
材料选项卡。添加(垫);

不幸的是,它没有帮助:(如果有帮助,我也可以添加主类。
List<Point> materialsTab = new ArrayList<Point>();

Point mat = new Point();
mat.x = sc.nextInt();
if (!sc.hasNext())
    break;
mat.y = sc.nextInt();
materialsTab.add(mat);