7  9
8  9
1  5
****
7  5
2  7
3  9
4  3
****
7  9
1  2
****以****为分隔符将记录分开,如上是txt格式,一行是一个点的坐标x,y

解决方案 »

  1.   

    readLine,一次读一行,读到含有*好的就不管他
      

  2.   

    用bufferedreader 读取每一行的数据,判断是否存在*如果存在则跳过这行,否则就解析这一行的数据,通过相应的分隔符获取到两个坐标值。
      

  3.   

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;/**
     *  TxtAnalyze.java
     *
     * @author 
     */class Point{
    private int x;
    private int y;
    public int getX() {
    return x;
    }
    public void setX(int x) {
    this.x = x;
    }
    public int getY() {
    return y;
    }
    public void setY(int y) {
    this.y = y;
    } public String toString(){
    return x + " " + y;
    }
    }public class TxtAnalyze {
    public static List<Point> txtAnalyze(String filePath) throws Exception{
    List<Point> pointList = new ArrayList<Point>(); File file = new File(filePath); if(file.exists()){
    BufferedReader br = new BufferedReader(new FileReader(file)); String line = ""; while((line = br.readLine()) != null){
    if(line.equals("***"))
    continue;
    int x = Integer.parseInt(line.substring(0,1));
    int y = Integer.parseInt(line.substring(2,3)); Point p = new Point();
    p.setX(x);
    p.setY(y); pointList.add(p);
    }
    } return pointList;
    } public static void main(String[] args) throws Exception{
    List<Point> pointList = txtAnalyze(); for(Iterator<?> it = pointList.iterator();it.hasNext();){
    System.out.println(it.next());
    }
    }
    }
      

  4.   

    楼上               int x = Integer.parseInt(line.substring(0,1));
                   int y = Integer.parseInt(line.substring(2,3));这样不好吧? 万一数字是两位数或3位数呢?
    就这里还是用split来做吧。
      

  5.   

    java通过流来读取 一行一行的读取。。然后你解析就可以了。。