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.   

    首先,确保你的 txt 文件里都是3个数
    然后,用 BufferedReader 包装 FileReader 来读取文件
    用 BufferedReader 的 readLine 方法一行一行的读取内容
    将内容用空格分隔,你可以使用 String 的 split 方法来拆分每一行的数据
    第一行的数据拆分后应该是一个三个元素的 String[]
    丢弃第一个
    将第二和第三个用 Float.parse 或者 Double.parse 转换成 Float 或者 Double
    保存在 Vector 中。如果需要数组,再从 Vector 里读出来。如果知道数组的大小,可以一开始就生成数组,往数组里读
      

  2.   

    import java.io.*;
    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();

    }
    }
      

  3.   

    定义一个Point类
    class Point {
      public double x;
      public double y;
    }
    把Point对象放到ArrayList中,相对好一些。