Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从文本文件读取坐标以循环?_Java_Arrays_Object_Point - Fatal编程技术网

Java 从文本文件读取坐标以循环?

Java 从文本文件读取坐标以循环?,java,arrays,object,point,Java,Arrays,Object,Point,因此,我必须编写一个程序,读取当前工作目录中文本文件中包含的坐标。我的问题是,在读取文本文件后,如何创建一个点对象数组来存储这些坐标?这是我到目前为止读取文件和while循环的代码 如果您不知道要提前阅读多少点,可以使用: 在while循环之前声明并初始化它: ArrayList ArrayList=new ArrayList() 在循环中使用arraylist.add(point)向其添加点 最后,如果您确实需要数组,可以使用以下方法转换ArrayList: Point[]foo=array

因此,我必须编写一个程序,读取当前工作目录中文本文件中包含的坐标。我的问题是,在读取文本文件后,如何创建一个点对象数组来存储这些坐标?这是我到目前为止读取文件和while循环的代码



如果您不知道要提前阅读多少点,可以使用:

在while循环之前声明并初始化它:

ArrayList ArrayList=new ArrayList()

在循环中使用
arraylist.add(point)
向其添加点

最后,如果您确实需要数组,可以使用以下方法转换ArrayList:


Point[]foo=arraylist.toArray(新点[arraylist.size())

需要将数组初始化为需要将其放入的数据大小。如果不知道大小,可以创建一个足够大的文件来处理所有数据,但这样做会浪费空间。您可以使用列表或其他集合,然后在读取所有数据后,您可以在知道大小后将其转换为数组。那么,我将如何在main中调用该文件以在上面的方法中存储数组内部的坐标呢?只需调用该方法并传递文件名?您可以像在代码中一样调用它。您可以使用前面提到的数组列表,而不是初始化数组。最后,您可以将数组列表转换为一个数组。在您提供的代码示例中,
array
变量的任何位置都不会声明在数组[I]=新点(x,y)下找不到错误符号的任何原因。这是“未找到符号”错误的一个很好的原因。
    try {

    // create the file reader instance
    FileReader fReader = new FileReader(fileName);

    // create a scanner to scan through the file
    Scanner scan = new Scanner (fReader);

    // loop 
    while (scan.hasNext()) {
            int i = 0;
            int x = scan.nextInt();
            int y = scan.nextInt();
            array[i] = new Point(x,y);

            i++;
        }


    // close the reader
        fReader.close();
} catch (IOException e) {
    System.out.println(e.getMessage());
  }
}