BufferedReader与BufferedInputStream重复缓冲?

jdgdf566 2013-11-24 04:39:08
FileInputStream fis = new FileInputStream(file);
BufferedReader = new BufferedReader(new InputStreamReader(new BufferedInputStream(fis),
"utf-8"));

第二句有两个Buffered类,会不会造成重复缓冲?

下面的代码,自动判断文本流的字符集,完全准确吗?有没有例外的、判断不正确的情况?
            FileInputStream fis = new FileInputStream(file);
BufferedReader reader;
BufferedInputStream in = new BufferedInputStream(fis);

in.mark(4);
byte[] first3bytes = new byte[3];
in.read(first3bytes);
in.reset();
if (first3bytes[0] == (byte) 0xEF
&& first3bytes[1] == (byte) 0xBB
&& first3bytes[2] == (byte) 0xBF) {// utf-8

reader = new BufferedReader(new InputStreamReader(in,
"utf-8"));

} else if (first3bytes[0] == (byte) 0xFF
&& first3bytes[1] == (byte) 0xFE) {

reader = new BufferedReader(new InputStreamReader(in,
"unicode"));
} else if (first3bytes[0] == (byte) 0xFE
&& first3bytes[1] == (byte) 0xFF) {

reader = new BufferedReader(new InputStreamReader(in,
"utf-16be"));
} else if (first3bytes[0] == (byte) 0xFF
&& first3bytes[1] == (byte) 0xFF) {

reader = new BufferedReader(new InputStreamReader(in,
"utf-16le"));
} else {

reader = new BufferedReader(new InputStreamReader(in,
"GBK"));
}
...全文
365 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
oh_Maxy 2013-11-25
  • 打赏
  • 举报
回复
其实LZ完全可以自己做个小例子试试嘛~

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧