Java 从网络驱动器错误地扫描文本文件

Java scanning text file incorrectly from network drive

提问人:telephony 提问时间:8/25/2023 最后编辑:telephony 更新时间:8/25/2023 访问量:44

问:

我有一个 18,000 行的文本文件,我正在从映射的网络驱动器扫描它。我正在使用 Java 中的 scanner 类。当文件存储在我的本地计算机上时,我的代码通过行计数器变量确认它有 18,000 行。使用相同的代码,但仅将文本文件的文件路径更改为网络驱动器,它将返回 ~700 行。有谁知道为什么会发生这种情况?当我将文件从网络驱动器拖到 C 时,它返回 700,但是当我复制内容并将其放入 C 驱动器的新文件中时,它返回真实的行数。我的代码如下:

public static void main(String[] args) throws FileNotFoundException
    {
        File text = new File("C:\\Users\\textfile.txt"); //returns correct number of lines
        //File text = new File("N:\\textfile.txt"); //returns incorrect number of lines
        Scanner scan = new Scanner(text);
        int linecount = 0;
        while(scan.hasNextLine())
        {
            linecount++;
            scan.nextLine();
        }
        scan.close();
        System.out.println(linecount);
    }
java 文本文件 java.util.scanner 网络驱动器

评论

0赞 rzwitserloot 8/25/2023
它与 java 无关。或者至少,与您粘贴的代码无关;没事的。
0赞 telephony 8/25/2023
@rzwitserloot我知道,只是想我会包括用于全貌的语言和代码
0赞 VGR 8/25/2023
C: 驱动器上文件的大小(以字节为单位)是多少?N: 驱动器上文件的大小(以字节为单位)是多少?
0赞 telephony 8/25/2023
@VGR 两者的大小相同:1,248,212 字节
0赞 g00se 8/25/2023
看看当你这样做时会发生什么:import java.nio.file.Files;import java.nio.file.Path;import java.io.InputStream;public class LineCounter {public static void main(String[] args) throws Exception {try(InputStream in = Files.newInputStream(Path.of("N:/textfile.txt"))) {int count = 0;int buf = -1;while ((buf = in.read()) > -1) {if (buf == '\n') {count++;}}System.out.printf("File contains %d line(s)%n", count);}}}

答: 暂无答案