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