首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java流的有关问题

2011-12-25 
java流的问题我用BufferedReader来进行复制文件,对txt文件拷贝没有问题,但是拷贝其他的文件如pdf,rar等格

java流的问题
我用BufferedReader来进行复制文件,对txt文件拷贝没有问题,但是拷贝其他的文件如pdf,rar等格式的文件就会出现问题,拷贝后的文件大小跟原来的不一样,而且也打不开 文件被破坏了 难道Reader不能复制出文本格式外的文件吗?

还有 我用FileChannel也出现同样情况 不知道怎么回事

[解决办法]
BufferedReader是用来操作文本文件的,也就是字符流,无法用来操作像PDF RAR这样的二进制文件,如果你要复制这些文件,可以考虑用FileInputStream FileOutpuStream 然后用相应的Buffer缓冲

至于用FileChannel是可以实现复制任何类型的文件,你之所以出问题 肯定是程序的问题,FileChannel是NIO的内容估计你对NIO的几个API操作调用有问题,可以贴程序看看
[解决办法]
// Create channel on the source
FileChannel srcChannel = new FileInputStream("srcFilename").getChannel();

// Create channel on the destination
FileChannel dstChannel = new FileOutputStream("dstFilename").getChannel();

// Copy file contents from source to destination
dstChannel.transferFrom(srcChannel, 0, srcChannel.size());

// Close the channels
srcChannel.close();
dstChannel.close();
[解决办法]
用文本编辑器可以打开直接查看内容的文件一般就是文本文件,二进制文件需要特殊的应用程序才能打开

我没有用FileChannel复制过那么大的文件,不清楚复制大文件和一般文件的代码是否一样

探讨

引用:
BufferedReader是用来操作文本文件的,也就是字符流,无法用来操作像PDF RAR这样的二进制文件,如果你要复制这些文件,可以考虑用FileInputStream FileOutpuStream 然后用相应的Buffer缓冲

至于用FileChannel是可以实现复制任何类型的文件,你之所以出问题 肯定是程序的问题,FileCha……

热点排行