如果我将UTF-16编码文件传递给以下代码,那么我是否会收到UnsupportedEncodingException?
try {
BufferedReader br = new BufferedReader(new InputStreamReader(in, Charset.forName("UTF-8")));
String ip;
while ((ip = br.readLine()) != null){
//do something
}
} catch (UnsupportedEncodingException use) {
//when can I expect an exception?
}
我用UTF-16文件尝试了这个,但我没有得到任何异常。读者不知何故试图读取所有导致它读取比预期更多的字符。例如,在一个包含3行的样本文件中,阅读器读取5行,其中2行是空行。
答案 0 :(得分:3)
UnsupportedEncodingException
的字符集的名称,则仅引发{p> Charset.forName()
。它与流的内容无关(声明Exception被Charset.forName()
而不是BufferedReader
或InputStreamReader
类抛出)。