使用 java 读取 unicode 文本文件
真正简单的问题。我需要在Java程序中读取Unicode文本文件。
我习惯于将纯ASCII文本与BufferedReader FileReader组合一起使用,这显然不能:(
我知道我可以使用缓冲读取器以“传统”方式读取字符串,然后使用如下方式进行转换:
temp = new String(temp.getBytes(), "UTF-16");
但是有没有办法将阅读器包装在“转换器”中?
编辑:文件以FF FE开头
真正简单的问题。我需要在Java程序中读取Unicode文本文件。
我习惯于将纯ASCII文本与BufferedReader FileReader组合一起使用,这显然不能:(
我知道我可以使用缓冲读取器以“传统”方式读取字符串,然后使用如下方式进行转换:
temp = new String(temp.getBytes(), "UTF-16");
但是有没有办法将阅读器包装在“转换器”中?
编辑:文件以FF FE开头
你不会包装阅读器,而是使用输入流阅读器包装流。然后,您可以使用当前使用的缓冲阅读器将其包装
BufferedReader in = new BufferedReader(new InputStreamReader(stream, encoding));
检查 https://docs.oracle.com/javase/1.5.0/docs/api/java/io/InputStreamReader.html。
我会用这样的东西来读取源文件:
Reader in = new InputStreamReader(new FileInputStream("file"), "UTF-8"));