Java 是否有一个BufferedReader.readLine()的等价物可以让我选择行尾字符是什么?

Java 是否有一个BufferedReader.readLine()的等价物可以让我选择行尾字符是什么?,java,io,newline,line-endings,Java,Io,Newline,Line Endings,Javadoc for说: 一行被认为是由任何一个换行符('\n')终止的, 回车符('\r'),或紧跟换行符的回车符 我需要比这稍微好一点的控制(例如,我希望能够指定行的结尾是“\r\n”,这样“\n”本身就不会终止行) 有没有JDK或库函数可以做到这一点?我不知道有任何标准API可以实现这一点 可以简单地将整个文件读入一个字符串,然后按所需的结尾字符将其拆分 for(String line: testFile.split("\r\n")){ ... } 尝试使用该类: 根据您需要Buffe

Javadoc for说:

一行被认为是由任何一个换行符('\n')终止的, 回车符('\r'),或紧跟换行符的回车符

我需要比这稍微好一点的控制(例如,我希望能够指定行的结尾是“\r\n”,这样“\n”本身就不会终止行)


有没有JDK或库函数可以做到这一点?

我不知道有任何标准API可以实现这一点

可以简单地将整个文件读入一个字符串,然后按所需的结尾字符将其拆分

for(String line: testFile.split("\r\n")){
...
}
尝试使用该类:


根据您需要BufferedReader的用例,您可以切换到使用Scanner类,该类能够从不同的源(文件、流)读取文本,并具有指定定界模式的直接方法。
请参见

不幸的是,我们的文件通常太大,无法正常工作。我怀疑这种行为是允许文本文件在不考虑平台的情况下表现相同,因此它隐藏了该细节。太棒了!这看起来正是我需要的。谢谢。痛苦的经验表明值得一提的是,Scanner使用了迭代器风格的API(hasNext/next),在没有更多输入时抛出NosTouchElementException而不是返回null
String line = Scanner(file).useDelimiter("\r\n").next();