关于文件复制问题

houxinling 2016-12-20 07:10:54
学习了IO知识,我试着复制文件
目前有两个问题:
1.复制的文档中有中文字符,复制后的文件会出来中文会部分乱码
2.复制了一首歌,无法播放
特此询问原因和解决方法。
还有通过此方法可以复制文件,文件复制就是逐个读取字节复制吗?
代码如下:
package study;
import java.io.*;
public class Buffered1Test {
public static void main(String[] args) throws IOException{
new Buffer1Test().test();
}
}

class Buffer1Test {
public void test() throws IOException{
FileReader in = new FileReader(new File("G:/张震岳 - 再见.mp3"));
BufferedReader bin = new BufferedReader(in);
FileWriter out = new FileWriter("C:/Users/hugang/Desktop/张震岳 - 再见.mp3");
BufferedWriter bout = new BufferedWriter(out);
int len;
while((len=bin.read())!=-1)
bout.write(len);
bout.close();
bin.close();
}
}
...全文
160 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ryuugu_rena 2016-12-22
  • 打赏
  • 举报
回复
引用 6 楼 houxinling 的回复:
[quote=引用 5 楼 冰眼的回复:]windows下的编码默认gbk,如果你复制文件,使用字节流遇到中文就可能出现乱码,复制文件使用字符流更好,复制歌曲都是二进制文件,使用字节流
复制中文文档,我使用字符流部分乱码了,而字节流没出现乱码,这是为啥[/quote] 默认的编码和你要输出的文件的编码不一样导致乱码,你可以指定一下输出的编码格式。
houxinling 2016-12-22
  • 打赏
  • 举报
回复
引用 7 楼 ryuugu_rena的回复:
[quote=引用 6 楼 houxinling 的回复:] [quote=引用 5 楼 冰眼的回复:]windows下的编码默认gbk,如果你复制文件,使用字节流遇到中文就可能出现乱码,复制文件使用字符流更好,复制歌曲都是二进制文件,使用字节流
复制中文文档,我使用字符流部分乱码了,而字节流没出现乱码,这是为啥[/quote] 默认的编码和你要输出的文件的编码不一样导致乱码,你可以指定一下输出的编码格式。[/quote] 好的,谢谢了
科比请留步 2016-12-21
  • 打赏
  • 举报
回复
windows下的编码默认gbk,如果你复制文件,使用字节流遇到中文就可能出现乱码,复制文件使用字符流更好,复制歌曲都是二进制文件,使用字节流
houxinling 2016-12-21
  • 打赏
  • 举报
回复
引用 5 楼 冰眼的回复:
windows下的编码默认gbk,如果你复制文件,使用字节流遇到中文就可能出现乱码,复制文件使用字符流更好,复制歌曲都是二进制文件,使用字节流
复制中文文档,我使用字符流部分乱码了,而字节流没出现乱码,这是为啥
houxinling 2016-12-20
  • 打赏
  • 举报
回复
引用 3 楼 BernardHan的回复:
[quote=引用 2 楼 houxinling 的回复:] [quote=引用 1 楼 公交哥的回复:]复制图片,视频,音频文件统一用字节流。 字符流在复制图片的时候,有一些代码能在编码表中找到编码,就转换成编码,但是还有好多找不到的代码, JVM就会用一些类似的编码代替,文件就会改变了,所以打不开。
谢谢,那请问中文部分乱码怎么解决[/quote] 编码问题,比如:utf-8,gbk 之类[/quote] 那请问用什么语句怎么改变编码? 不过改为字节后,已经不再乱码了
BernardHan 2016-12-20
  • 打赏
  • 举报
回复
引用 2 楼 houxinling 的回复:
[quote=引用 1 楼 公交哥的回复:]复制图片,视频,音频文件统一用字节流。 字符流在复制图片的时候,有一些代码能在编码表中找到编码,就转换成编码,但是还有好多找不到的代码, JVM就会用一些类似的编码代替,文件就会改变了,所以打不开。
谢谢,那请问中文部分乱码怎么解决[/quote] 编码问题,比如:utf-8,gbk 之类
houxinling 2016-12-20
  • 打赏
  • 举报
回复
引用 1 楼 公交哥的回复:
复制图片,视频,音频文件统一用字节流。 字符流在复制图片的时候,有一些代码能在编码表中找到编码,就转换成编码,但是还有好多找不到的代码, JVM就会用一些类似的编码代替,文件就会改变了,所以打不开。
谢谢,那请问中文部分乱码怎么解决
爱睡觉的阿狸 2016-12-20
  • 打赏
  • 举报
回复
复制图片,视频,音频文件统一用字节流。 字符流在复制图片的时候,有一些代码能在编码表中找到编码,就转换成编码,但是还有好多找不到的代码, JVM就会用一些类似的编码代替,文件就会改变了,所以打不开。

62,628

社区成员

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

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