加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

为什么这个Java代码没有用#跳过?

发布时间:2020-12-14 23:55:21 所属栏目:Java 来源:网络整理
导读:我是一个新手,但我试图允许 Java脚本读取的外部.txt文件能够在文件的开头有一些注释,以便其他人可以轻松编辑它并添加更多内容. 但是如果文件包含#(为一行注释指定的符号),它只返回错误,即文件中存在“格式错误”(IOException – 所以它超过了第一个“IF”…
我是一个新手,但我试图允许 Java脚本读取的外部.txt文件能够在文件的开头有一些注释,以便其他人可以轻松编辑它并添加更多内容.
但是如果文件包含#(为一行注释指定的符号),它只返回错误,即文件中存在“格式错误”(IOException – 所以它超过了第一个“IF”… )
有人可以帮忙吗?

以下是代码部分,用于处理在脚本中先前调用的.txt文件中的注释行:

while ((line = br.readLine()) != null) {
    line = line.trim();
    if (line.length() < 1 || line.charAt(0) == '#') { // ignore comments
     continue;
    }
    final String[] parts = line.split("=");
    if (parts.length != 2) {
     throw new IOException("Format error in file "
       + JLanguageTool.getDataBroker().getFromRulesDirAsUrl(getFileName())
       + ",line: " + line);
    }

input.txt文件在第一行中断它:

06001

这是实际的错误:

06002

file:/D:/Documents……./coherency.txt,
line: #This is a Test
at rules.km.KhmerSimpleReplaceRule.loadWords(KhmerSimpleReplaceRule.java:165)
at rules.km.KhmerSimpleReplaceRule.loadWords(KhmerSimpleReplaceRule.java:82)
…33 more

并且堆栈跟踪错误:

Caused by: java.io.IOException: Format
error in file
[Ljava.lang.StackTraceElement;@1cb2795
at
km.KhmerSimpleReplaceRule.loadWords(KhmereSimpleReplaceRule.java:
169)

解决方法

在您的第一个可见角色前面可能有一个UTF-8字节顺序标记.大多数编辑器都不会显示这些字符,因为它只预测内容的编码,Java不会删除UTF-8字节顺序标记(与UTF-16和32不同).如果确实存在UTF-8 BOM,您必须自己删除这三个字节.

有关更多详细信息,请参阅Java-Bug 6378911.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读