txt文件的格式如下:
1 2.34 2.38
2 34.23 68.37
3 35.32 82.58
4 32.53 57.37
.....
.....
.....
1001 38.32 35.37
这是一个坐标文件,每行的double数字表示一个点的坐标.比如第一行的X,Y就是2.34, 2.38 .我需要把所有的坐标存在一个array,或是vector中.但是不可以把1 2 3 ...1001这些序列号读进去. 我需要怎么做?最好有两个array或是vector,把所有的x坐标存在一个array,然后再把所有的y坐标存到一个array.
谢谢大家.
1 2.34 2.38
2 34.23 68.37
3 35.32 82.58
4 32.53 57.37
.....
.....
.....
1001 38.32 35.37
这是一个坐标文件,每行的double数字表示一个点的坐标.比如第一行的X,Y就是2.34, 2.38 .我需要把所有的坐标存在一个array,或是vector中.但是不可以把1 2 3 ...1001这些序列号读进去. 我需要怎么做?最好有两个array或是vector,把所有的x坐标存在一个array,然后再把所有的y坐标存到一个array.
谢谢大家.
然后,用 BufferedReader 包装 FileReader 来读取文件
用 BufferedReader 的 readLine 方法一行一行的读取内容
将内容用空格分隔,你可以使用 String 的 split 方法来拆分每一行的数据
第一行的数据拆分后应该是一个三个元素的 String[]
丢弃第一个
将第二和第三个用 Float.parse 或者 Double.parse 转换成 Float 或者 Double
保存在 Vector 中。如果需要数组,再从 Vector 里读出来。如果知道数组的大小,可以一开始就生成数组,往数组里读
import java.util.*;public class Coordinate {
private File src;
private List<Double> xList;
private List<Double> yList;
public Coordinate(File f)throws IOException{
src = f;
xList = new ArrayList<Double>();
yList = new ArrayList<Double>();
//store();
}
public void store()throws IOException{
BufferedReader br = new BufferedReader(new FileReader(src));
String str;
while((str=br.readLine())!=null){
String parts[] = str.split(" ");
xList.add(new Double(Double.parseDouble(parts[1])));
yList.add(new Double(Double.parseDouble(parts[2])));
}
}
public void prt(){
System.out.println(xList);
System.out.println(yList);
}
public static void main(String[]args)throws IOException{
File f = new File(".\\output\\coordinate.txt");
Coordinate c = new Coordinate(f);
c.store();
c.prt();
}
}
class Point {
public double x;
public double y;
}
把Point对象放到ArrayList中,相对好一些。