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

标签 java

我正在使用 Java SE 6。

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

我这样做的方法是使用 BufferedReader read() 函数读取示例行以搜索第一行分隔符并将该行分隔符保存为字符串。这样以后只要我需要换行就可以使用它。

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

\r\n
\r
\n
\u2028
\u2029
\u0085

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

还有其他解决方法吗?

编辑: 如果可能的话,我想使用 Java 的标准 API 而不是第 3 方库,但欢迎所有建议。

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

谢谢。

最佳答案

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

对于给定的文件,这个问题无法明确回答,因为该文件可能使用多个行结尾。这似乎是人为的,但它是可能的。

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

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

关于java - 是否有标准的 API 来检查 Java 中的行分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4037681/

相关文章:

java - Libgdx:SpriteBatch.draw spriteVertecies 奇怪的 UV 坐标行为

java - 为什么将输入读取为流与字符串相比内存效率更高?

java - 使用 JUnit 测试 Spring Controller

java - Java可以指示字体是否为斜体

java - 有什么好的方法可以通过 JDBC 原子地执行 MySQL 语句吗?

java - 使用 Perforce 在 Eclipse 中显示行作者

Java对动态定义的对象数组列表进行排序

java - Android:你如何通过点击进入另一个 Activity ?

java - XML 1.0/RSS 2.0 文档的标题?

Java Coverity 锁语句上的无限期等待错误