我是个新手,但我正在尝试让 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 文件在第一行中断它:
#This is a Test ឲ្យ|ឱ្យ=អោយ កំពស់=កម្ពស់ កម្នាញ់=កំណាញ់
这是实际的错误:
Caused by: java.io.IOException: Format error in file
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 .
关于java - 为什么此 Java 代码不使用 # 跳过行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4678108/