java - 读取文本文件时检查不可打印字符的行

标签 java file file-io

我的程序必须逐行读取文本文件。 UTF-8 格式的文件。 我不确定文件是否正确 - 可能包含不可打印的字符。 是否可以在不进入字节级别的情况下对其进行检查? 谢谢。

最佳答案

使用 FileInputStream 打开文件,然后使用 InputStreamReader使用 UTF-8 Charset从流中读取字符,并使用 BufferedReader阅读行,例如通过 BufferedReader#readLine ,这会给你一个字符串。获得字符串后,您可以检查您认为不可打印的字符。

例如(没有错误检查),使用 try-with-resources (这是模糊的现代 Java 版本):

String line;
try (
    InputStream fis = new FileInputStream("the_file_name");
    InputStreamReader isr = new InputStreamReader(fis, Charset.forName("UTF-8"));
    BufferedReader br = new BufferedReader(isr);
) {
    while ((line = br.readLine()) != null) {
        // Deal with the line
    }
}

关于java - 读取文本文件时检查不可打印字符的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7413830/

相关文章:

ruby - 在文件中查找并打印与字符串或正则表达式完全匹配的行 (Ruby)

java - 加速文件系统访问?

java - 使用 Java Connector/J 和 SSL 连接到 RDS 中的 MySQL

java - 将 Java 源代码导入 Eclipse 以避免混淆引用的正确方法是什么?

php - 如何在 php 包含文件中设置 html 内容的样式?

file - 在 haskell 中移动目录的最有效方法

c++ - 构建 shell - IO 问题

java - 我可以在使用 Java Socket 实现的网络服务器上使用任何身份验证机制吗?

java - 我得到一个 FileNotFoundException 但文件在那里

python - 如何在执行 Python 脚本期间检测文本文件的更改?