Java 打印奇数行-行计数器增加两倍

Java 打印奇数行-行计数器增加两倍,java,file,printing,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

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

    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为奇数时,你只会读到下一行

你想要的东西大致如下:

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

在if条件下编写println语句。

另外,我会打印所有行,而不仅仅是奇数行,当我删除if时,行数是正常的
 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();
}