文件复制乱码问题

疯子_豸 2013-09-28 07:12:19
FileInputStream fis = new FileInputStream("b.txt");
InputStreamReader isr = new InputStreamReader(fis);
FileOutputStream fos = new FileOutputStream("copy_b.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos);

int i = -1;
while((i = isr.read()) != -1){
System.out.print((char)isr.read());
osw.write(i);
}
isr.close();
osw.close();
复制后的文件乱码,请各位高手帮我看看是哪里的问题,谢谢!
...全文
213 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
疯子_豸 2013-10-01
  • 打赏
  • 举报
回复
谢谢各位的回答 真心的谢谢
无聊找乐 2013-09-29
  • 打赏
  • 举报
回复
读的char,会有字符集问题, 改用ByteArrayInputStream 读 byte 就好了
huntor 2013-09-29
  • 打赏
  • 举报
回复
引用 5 楼 rainbowsix 的回复:
读的char,会有字符集问题, 改用ByteArrayInputStream 读 byte 就好了
直接使用FileChannel的transferFrom 或 transferTo 复制
huntor 2013-09-28
  • 打赏
  • 举报
回复
引用 2 楼 AA5279AA 的回复:
大哥,你写入的是i 不是字节数组。。。
InputStreamReader的read()方法返回的是一个字符。 楼主的代码读一个字符判断是否-1,丢弃,再读一个写入输出流。
疯子_豸 2013-09-28
  • 打赏
  • 举报
回复
谢谢 新手每分给你们 不好意思
失落夏天 2013-09-28
  • 打赏
  • 举报
回复
大哥,你写入的是i 不是字节数组。。。
尘缘udbwcso 2013-09-28
  • 打赏
  • 举报
回复

Reader r = new BufferedReader(new InputStreamReader(in, System.getProperty("file.encoding")));
Writer w = new BufferedWriter(new OutputStreamWriter(out, System.getProperty("file.encoding")));

62,621

社区成员

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

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