Java扫描程序不从文件开头开始

时间:2014-09-05 01:27:04

标签: java text java.util.scanner

首先,这不是其他帖子的重复,因为在我的问题中,扫描程序类不识别.txt文件的开头而不是结尾,而是从文件的大约1/2开始。

这是我的代码:

package Program;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class App {

public static void main(String[] args) throws FileNotFoundException {
    String filename = "C:\\Users\\vroy\\Programming\\Text documents\\P&P.txt";

    File textFile = new File(filename);

    Scanner reader = new Scanner(textFile);

    // int value = reader.nextInt();
    // System.out.println(value);

    while (reader.hasNextLine()) {
        String line = reader.nextLine();
        System.out.println(line);
    }

    reader.close();
}

}

以下是我的程序正在阅读的.txt文档:

http://www.goodreads.com/ebooks/download/1885.Pride_and_Prejudice?doc=2

我的节目开始打印出文字行,从:“判断错误的行为......”

它应该从文档开始更进一步。

这是扫描仪类的问题吗?

1 个答案:

答案 0 :(得分:3)

  

这是扫描仪类的问题吗?

不。

我刚刚测试了你的代码。答案实际上非常有趣 - 我假设你在Eclipse这样的IDE中运行这段代码。 System.out.println()打印到“控制台”。控制台显示的行数最多,而且由于文件很长,因此无法显示开始。

它循环遍历所有行。为了证明这一点,每当它打印一行时,使其增加一个数字,如:

int counter = 0;
while (reader.hasNextLine()) {
    String line = reader.nextLine();
    System.out.println(line);
    counter++;
}

您将看到计数器正好是文档中的行数。