Java 在运行时确定换行符
我正在读一个文件,一段一段用换行符隔开Java 在运行时确定换行符,java,Java,我正在读一个文件,一段一段用换行符隔开 Line 1 Line 2 Line 3 Line 4 Line 5 Line 6 这里我读了第1、2、3行,然后是第4、5、6行 while (there are still more paragraphs) { String paragraph = new Scanner(new File("testdata.txt")).useDelimiter("\n\n").next(); } delimeter \n \n用于识别段落而不是行。现在,
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
这里我读了第1、2、3行,然后是第4、5、6行
while (there are still more paragraphs) {
String paragraph = new Scanner(new File("testdata.txt")).useDelimiter("\n\n").next();
}
delimeter \n \n用于识别段落而不是行。现在,分隔符可以在少数系统中更改为\r\n\r\n,在其他少数系统中更改为\n\n。有没有办法在runtine识别并使用它?我正在寻找类似于:
String delimiter = getNewLineCharYourself();
String paragraph = new Scanner(new File("testdata.txt")).useDelimiter(delimiter).next();
你在找什么
System.getProperty("line.seperator");
看看这个:
String newLine = String.format("%n");
// %n becomes newline ^^
或:
或者,在Java 7中:
System.lineSeparator();
从此处开始:您只需按原样抓取整个文件,然后拆分数据:
for ( String line : "the entire file".split( System.getProperty("line.separator") )
{
System.out.println( line );
}
是通用的新行字符
另一种方法是:
BufferedReader bufferedReader = new BufferedReader( new FileReader( "absolute file path" ) );
String line;
while ( ( line = bufferedReader.readLine() ) != null)
{
System.out.println( line );
}
杰洛多说的。或者使用BufferedReader:
检测操作系统并使用\r\n仅限AFAIK Windows使用的操作系统,或者在适当的时候使用?@m0skit0不要重新发明轮子。检查下面的答案。@LuiggiMendoza谁说他必须自己实施?这只是一个暗示;或System.lineSeparator+1应将问题标记为重复,而不是重复答案!你完全正确,为什么不使用try-with-resources最终摆脱这种混乱局面?@jlordo,因为我使用的是java6:D
BufferedReader bufferedReader = new BufferedReader( new FileReader( "absolute file path" ) );
String line;
while ( ( line = bufferedReader.readLine() ) != null)
{
System.out.println( line );
}
File file = new File("myFile.txt");
if (file.exists() && file.canRead()) {
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String line = null;
while ((line = br.readLine())!= null) {
if (!line.trim().isEmpty()) {
// TODO something with your line
}
}
}
catch (Throwable t) {
// TODO handle this
t.printStackTrace();
}
finally {
// attempting to close
if (br != null) {
try {
br.close();
}
catch (Throwable t) {
t.printStackTrace();
}
}
}
}