打印奇数行 - 行计数器递增两次

时间:2013-08-16 10:01:29

标签: java file printing

我制作了一个简单的程序,我想从文件中打印所有奇数行。

    public static void main(String[] args) throws FileNotFoundException{
    File file = new File("text.txt");
    Scanner fileRead = new Scanner(file);
    int lineCount = 0; 
    int i = 0;

    while(fileRead.hasNextLine()){
      lineCount++;
      i = lineCount % 2;
      System.out.println("Line count -- >> " + lineCount);
      if(i == 1){
          System.out.println(fileRead.nextLine());
      }          
    }        
    fileRead.close();
 }
}

所以当我运行它时,输出是

行数 - >> 1

行数 - >> 2

行数 - >> 3

甚至

行数 - >> 4

行数 - >> 5

奇数

等...... 为什么我让lineCount增加两次?提前谢谢

3 个答案:

答案 0 :(得分:1)

 public static void main(final String[] args)
        throws FileNotFoundException
{
    final File file = new File("C:\\textstr.txt");
    final Scanner fileRead = new Scanner(file);
    int lineCount = 0;
    int i = 0;

    while (fileRead.hasNextLine())
    {
        lineCount++;
        i = lineCount % 2;
        final String str = fileRead.nextLine();
        if (i == 1)
        {
            System.out.println("Line count -- >> " + lineCount);
            System.out.println(str);
        }
    }
    fileRead.close();
}

答案 1 :(得分:0)

打印linecount超出了您的条件,检查数字是否为奇数,因此您将为每个奇数行获得两次输出。你也不会得到每一个奇数行,因为当linecount是奇数时你只是读到下一行

你想要的东西是:

String line = fileRead.nextLine();
if(i == 1){
    System.out.println(line);
}  

答案 2 :(得分:0)

将println语句写入if条件。