如何从文本文件中复制一行并打印行和行号

时间:2014-09-17 03:22:19

标签: java string exception int stringtokenizer

我在创建一个程序时遇到问题,该程序会在文本文件中发现错误并打印错误所在的行,并且还会打印错误所在的行号。它正在寻找的错误是每行上是否有6个单词/数字,否则会出现错误

例如:

文本文件

命名品种月份日重量

命名品种月

命名品种月份日重量

***文件中的错误行:

命名品种月 第2行出错:字段数应为6,而不是3. *

int numline= 0;
while(sc.hasNextLine())
    {

    // read a line from the input file via sc into line
        line = sc.nextLine();




        try{
        StringTokenizer stk = new StringTokenizer(line);
        String name = stk.nextToken();
        String breed = stk.nextToken();
        int month = Integer.parseInt(stk.nextToken());
        int day = Integer.parseInt(stk.nextToken());
        int year = Integer.parseInt(stk.nextToken());
        double weight = Double.parseDouble(stk.nextToken());
        numline++;
        Dog list = new Dog(name, breed, month, day, year, weight);


        dogs.add(list);




        }

        catch(Exception missError)
        {
            System.out.println("Error Lines detected in file:");
            System.out.println("Number of fields on line must be 6");

        }

    }
     // close the file
sc.close();
  System.out.println(numline);

1 个答案:

答案 0 :(得分:0)

numLine++作为try块中的第一行,并在catch块中使用该行。还可以使用返回line.split("\\s+");的{​​{1}},然后您就会知道前面的字段数,然后您不需要依赖String[]

Exception