如果我将一个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行为空行。
发布于 2014-05-09 11:25:11
只有当您传递给UnsupportedEncodingException的字符集的名称不受支持时,才会引发Charset.forName()。它与流的内容无关(异常被声明为由Charset.forName()抛出,而不是由BufferedReader或InputStreamReader类引发)。
https://stackoverflow.com/questions/23563351
复制相似问题