在Java中读取时如何识别Java数据文件中的特殊字符?

时间:2019-02-17 00:37:10

标签: java

在读取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

1 个答案:

答案 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
...