读取 java 中的文本文件,想检查它使用哪种换行符
Reading a text file in java, want to check what kind of line break it uses
我得到了两个文本文件,一个使用 \n 换行,另一个使用 \r\n。我只是想能够检查这两个中的哪一个。我想使用 BufferedReader 逐字符读取并搜索 \(使用 \),然后检查下一个字符是什么,但是当我在 txt 文件中搜索任何 \s 时,我没有得到任何结果,循环刚刚结束。
目前,我只是尝试通过打印出 \ 及其后面的任何字符来进行测试,所以当我 运行 文件时,我应该打印出一堆 \n 或 \r,但我只是完成了打印。有什么建议吗?
char x;
while(reader.ready())
{
x = (char) reader.read();
if(x == '\')
System.out.println(x + "" + (char) reader.read());
}
System.out.println("Done");
查看您正在解析的文本类型会很有用。
例如,如果您的文件如下所示:
The lazy brown dog\n jumped over the fox.\n
您当前的代码应该可以工作。但是,如果文件如下所示:
The lazy brown dog
jumped over the fox
您的代码不会。第二个文件实际上并不包含字符“\”。相反,它包含换行符和回车 return 或仅包含换行符。如果您正在测试 '\n',您实际上想要测试字符 0x0A(或字符 10)。你会想要对此进行测试。
我的建议是确保您正在测试正确的角色。如果是,那么 post 获取您正在解析的文件样本将有助于使问题更清楚。
(我知道这应该是评论而不是答案,但我现在不能 post 评论)。
您混淆了一个字符 \r
和一个由两个字符 \
和 r
组成的字符串。下面的代码应该适合你:
char charValue;
while ((charValue = (char) reader.read()) != -1) {
if ('\n' == charValue) {
System.out.println("\n");
}
if ('\r' == charValue) {
System.out.println("\r");
}
}
我得到了两个文本文件,一个使用 \n 换行,另一个使用 \r\n。我只是想能够检查这两个中的哪一个。我想使用 BufferedReader 逐字符读取并搜索 \(使用 \),然后检查下一个字符是什么,但是当我在 txt 文件中搜索任何 \s 时,我没有得到任何结果,循环刚刚结束。
目前,我只是尝试通过打印出 \ 及其后面的任何字符来进行测试,所以当我 运行 文件时,我应该打印出一堆 \n 或 \r,但我只是完成了打印。有什么建议吗?
char x;
while(reader.ready())
{
x = (char) reader.read();
if(x == '\')
System.out.println(x + "" + (char) reader.read());
}
System.out.println("Done");
查看您正在解析的文本类型会很有用。
例如,如果您的文件如下所示:
The lazy brown dog\n jumped over the fox.\n
您当前的代码应该可以工作。但是,如果文件如下所示:
The lazy brown dog
jumped over the fox
您的代码不会。第二个文件实际上并不包含字符“\”。相反,它包含换行符和回车 return 或仅包含换行符。如果您正在测试 '\n',您实际上想要测试字符 0x0A(或字符 10)。你会想要对此进行测试。
我的建议是确保您正在测试正确的角色。如果是,那么 post 获取您正在解析的文件样本将有助于使问题更清楚。
(我知道这应该是评论而不是答案,但我现在不能 post 评论)。
您混淆了一个字符 \r
和一个由两个字符 \
和 r
组成的字符串。下面的代码应该适合你:
char charValue;
while ((charValue = (char) reader.read()) != -1) {
if ('\n' == charValue) {
System.out.println("\n");
}
if ('\r' == charValue) {
System.out.println("\r");
}
}