Java:如何通过忽略 "\n"逐行读取文件

标签 java bufferedreader text-parsing carriage-return linefeed

我正在尝试每行读取一个制表符分隔的文本文件行。使用回车符 ("\r\n") 分隔行,在制表符分隔的文本字段中允许换行 (\"n")。

因为我想逐行读取文件行,所以我希望我的程序忽略独立的“\n”。 不幸的是,BufferedReader 使用这两种可能性来分隔行。如何修改我的代码,以忽略独立的“\n”?

try 
{
    BufferedReader in = new BufferedReader(new FileReader(flatFile));
    String line = null;
    while ((line = in.readLine()) != null) 
    {
        String cells[] = line.split("\t");                          
        System.out.println(cells.length);
        System.out.println(line);
    }
    in.close();
} 
catch (IOException e) 
{
    e.printStackTrace();
}

最佳答案

使用 java.util.Scanner

Scanner scanner = new Scanner(new File(flatFile));
scanner.useDelimiter("\r\n");
while (scanner.hasNext()) {
    String line = scanner.next();
    String cells[] = line.split("\t");                          
    System.out.println(cells.length);
    System.out.println(line);
}

关于Java:如何通过忽略 "\n"逐行读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16712115/

相关文章:

java - 关闭 JFrame

java - 我将如何使用缓冲读取器将 .txt 文件转换为 ArrayList 以及如何操作该对象?

java - 如何创建java pojo

linq - 使用 LINQ 和 File.ReadAllLines() 读取下一行

java - 使用 BufferedReader 将字符串转换为 int

java - 继承 :hidden variable of superclass in subclass

java - 当我们改变 API 级别时,代码中是否需要更改任何内容?

java - 如何提交 Oracle Java 变更请求?

java - 如何在控制台中重做/避免换行?

java - 如果我有 key ,如何从 map 中获取值?