我的程序必须逐行读取文本文件。 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/