java - 行尾困惑

标签 java bufferedreader eol

我用 java 制作了一个简单的解析器,它一次读取一个字符并构造单词。

我尝试在 Linux 下运行它,我发现查找 '\n' 不起作用。尽管如果我将字符与值 10 进行比较,它会按预期工作。根据 ASCII 表,值 10 是 LF(换行)。我在某处读到(我不记得在哪里),Java 应该只能通过查找 '\n' 来找到换行符。

我正在使用 BufferedReaderread 方法来读取字符。

编辑

readLine不能使用,因为它会产生其他问题

看起来这个问题是在我在linux下使用以mac/windows文件结尾的文件时出现的。

最佳答案

使用readLine()逐行读取文本

示例

FileInputStream fstream = new FileInputStream("textfile.txt");
  // Get the object of DataInputStream
  DataInputStream in = new DataInputStream(fstream);
  BufferedReader br = new BufferedReader(new InputStreamReader(in));
  String strLine;
  //Read File Line By Line
  while ((strLine = br.readLine()) != null)   {
  // Print the content on the console
  System.out.println (strLine);
  }
  //Close the input stream
  in.close();
    }catch (Exception e){//Catch exception if any
  System.err.println("Error: " + e.getMessage());
  }

关于java - 行尾困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8700575/

相关文章:

linux - Bash 脚本不起作用。也许是 EOL 问题?

java - 如何在 TestNG 中断言 String ArrayList 的 ArrayList 相等

用于编辑文档属性的 Java 库

java - 从 myScanner 抓取多个数据

android - 从 Webservice 下载和查看 Android 应用程序中的 PDF

CSV 与 TXT 文件中的 Java BufferedReader 行为

string - 移动到缓冲区内字符串的末尾 - 汇编语言

c - 为什么我的 C 中的 not_EOL 函数无法检测到 EOL

java - Spring Boot 2.1.7.RELEASE 中未提供静态内容

java - 如何读取我在同一个包中创建的文件?