提问人:telephony 提问时间:8/25/2023 最后编辑:telephony 更新时间:8/25/2023 访问量:44
Java 从网络驱动器错误地扫描文本文件
Java scanning text file incorrectly from network drive
问:
我有一个 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);
}
答: 暂无答案
评论
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);}}}