小编Ser*_*i M的帖子

java Scanner只读取前2048个字节

我正在使用java.util.Scanner从classpath读取文件内容,使用以下代码:

String path1 = getClass().getResource("/myfile.html").getFile();

System.out.println(new File(path1).length()); // 22244 (correct)

String file1 = new Scanner(new File(path1)).useDelimiter("\\Z").next();
System.out.println(file1.length()); // 2048 (first 2k only)
Run Code Online (Sandbox Code Playgroud)

代码从命令运行(maven测试)

/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/bin/java -Dmaven.home=/usr/share/java/maven-3.0.4 -Dclassworlds.conf=/usr/share/java/maven-3.0.4/bin/m2.conf -Didea.launcher.port=7533 "-Didea.launcher.bin.path=/Applications/IntelliJ IDEA 12 CE.app/bin" -Dfile.encoding=UTF-8 -classpath "/usr/share/java/maven-3.0.4/boot/plexus-classworlds-2.4.jar:/Applications/IntelliJ IDEA 12 CE.app/lib/idea_rt.jar" com.intellij.rt.execution.application.AppMain org.codehaus.classworlds.Launcher --fail-fast --strict-checksums test
Run Code Online (Sandbox Code Playgroud)

它在我的win7机器上完美运行.但在我搬到mac后,同样的测试失败了.我试着谷歌但没有找到多少=(

为什么Scanner with delimiter\Z在win7上将我的整个文件读成一个字符串,但不会在mac上执行?我知道有更多的方法来阅读文件,但我喜欢这个单行,并想了解它为什么不起作用.谢谢.

java windows macos java.util.scanner

7
推荐指数
1
解决办法
1304
查看次数

标签 统计

java ×1

java.util.scanner ×1

macos ×1

windows ×1