let*_*nka 5 java character-encoding eof
[编辑]我找到了答案,但由于新用户的限制,我无法回答这个问题.无论哪种方式,这都是Java中的已知错误.
http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8028387
我正在尝试将文件读入64位ubuntu的Java 6中的字符串.Java给了我一个非常奇怪的结果,"\\Z"它读取整个文件,但是"\\z"它读取整个字符串最多1024个字符.我已经阅读了所有课程的Java 6 API,但我很茫然.
\ Z和\ z的描述可在以下位置找到:
http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html#lt
什么可能导致这种奇怪的行为?
String fileString = new Scanner(new File(fileName)).useDelimiter("\\z").next();
String fileString2 = new Scanner(new File(fileName)).useDelimiter("\\Z").next();
System.out.println("using Z : " + fileString2.length());
System.out.println("Using z "+ fileString.length());
Run Code Online (Sandbox Code Playgroud)
输出:使用Z:9720使用z:1024
谢谢!
有关文件/ java-version的详细信息:
使用java-6-openjdk-amd64运行Ubuntu(也使用oracle java6测试)文件是简单的文本文件UTF-8编码.
作为Pattern文档说明
\z 输入结束\Z 输入的结束,但对于最终终止符,如果有的话我怀疑,因为Scanners缓冲区大小设置为1024,
354 private static final int BUFFER_SIZE = 1024; // change to 1024;
扫描程序读取此数量的字符并将其用作当前输入,因此\z可以在此处用于表示其结束,而\Z不能因为它不是"最终终止符"(整个输入中有更多元素要读取).
| 归档时间: |
|
| 查看次数: |
13357 次 |
| 最近记录: |