在读取Java时如何识别Java数据文件中的特殊字符?
示例:在下面的文本文件中,在具有输入字符的test5之后的第5行。我们在读取文件时可以在java中知道吗。
12,test1,test2,test3,test4
13,test2,test2,test3,test4
14,test3,test2,test3,test4
15,test4,test2,test3,test4
16,test5
,test6,test7,test8
17,test4,test2,test3,test4
答案 0 :(得分:2)
您可以使用BufferedReader.read()
进行此操作。它逐字符读取文件。因此,我们可以检查每个字符以查看它是否是“回车符”(13),“换行符”(10)等。
在Windows中,换行符通常是“回车” +“换行”。
(文件“ data.txt”包含您在问题中提到的文本。)
import java.io.*;
public class ReadCharacters
{
public static void main(String[] args) throws IOException
{
BufferedReader reader = new BufferedReader(new FileReader("data.txt"));
int i;
int previousI = -1;
while ((i = reader.read()) != -1)
{
if (i == 13)
{
System.out.println("Carriage return (\\r) character");
}
else if (i == 10)
{
System.out.println("New line (\\n) character");
if (previousI == 13)
{
System.out.println("LINE BREAK (\\r\\n) FOUND!\n");
}
}
else
{
System.out.println((char) i);
}
previousI = i;
}
}
}
输出为:
1
2
,
t
e
s
t
1
,
t
e
s
t
2
,
t
e
s
t
3
,
t
e
s
t
4
Carriage return (\r) character
New line (\n) character
LINE BREAK (\r\n) FOUND!
1
3
,
t
e
s
t
2
...