是否有标准的API来检查Java中的行分隔符?

Rus*_*ell 6 java

我正在使用Java SE 6.

我的程序读取几种文件,从dos到unix,从ascii到unicode,我必须确保输出文件的行分隔符与输入文件匹配.

我这样做的方法是使用BufferedReader read()函数读取一个示例行,以搜索第一行分隔符并将该行分隔符保存到String.这样,只要我需要一个新行,它就可以在以后使用.

我已经检查过Scanner类,并注意到可能的行分隔符可能包括以下内容:

\r\n
\r
\n
\u2028
\u2029
\u0085
Run Code Online (Sandbox Code Playgroud)

是否有库函数来检查这些字符?或者甚至更好,是否已经有一个库函数来检查输入的行分隔符是什么样的?

还有其他方法吗?

编辑:如果可能,我想使用Java的标准API而不是第三方库,但所有建议都是最受欢迎的.

编辑:只是为了澄清.
1)输入文件不依赖于该程序的运行位置.例如,如果我在Dos中运行此程序,我仍然可以获得Unix输入文件.
2)我的目标不是读取用行分隔符分隔的每一行 - 这很简单.我真正需要的是使用与输入文件相同的行分隔符编写输出文件.例如,如果我在Dos中运行此程序,并且我获得了Unix输入文件,我希望能够使用Unix行分隔符编写输出文件.这就是为什么我要问是否有一个标准API来检测基于输入文件的行分隔符,而不是运行操作系统.

谢谢.

Phi*_*das 3

前面三个答案并没有真正解决这个问题。OP想要从给定的文件中确定:该文件中使用的行分隔符是什么?

对于给定文件,无法明确回答这个问题,因为该文件可能使用多个行结尾。这可能看起来很做作,但这是可能的。

因此,对我来说最好的方法似乎是自己解析输入文件,计算可能的行结束字符序列的出现次数,并选择最常出现的一个作为该文件的行分隔符。

我还没有遇到过可以实现此功能的库。