黑马程序员技术交流社区
标题:
如何用IO流实现复制压缩文件?
[打印本页]
作者:
hhmm665544
时间:
2014-3-8 20:14
标题:
如何用IO流实现复制压缩文件?
import java.io.*;
/*
复制代码
作者:
hhmm665544
时间:
2014-3-8 20:16
import java.io.*;
class CopyTest
{
public static void main(String[] args)throws IOException
{
copyT();
}
public static void copyT()throws IOException
{
FileReader fr = new FileReader("D:\\guess_1.rar");
FileWriter fw = new FileWriter("C:\\guess_1.rar");
char[] buf = new char[1024];
int len = 0;
while((len=fr.read(buf))!=-1)
{
fw.write(new String(buf,0,len));
fw.flush();
}
fw.close();
fr.close();
}
复制代码
作者:
hhmm665544
时间:
2014-3-8 20:18
用上面的代码去复制文本是正常的,但是复制压缩文件就会出现损坏的文件.为什么呢?
作者:
daoyua
时间:
2014-3-8 20:51
压缩应该是把数据格式改变了吧,流只是读和传递数据,没改变数据格式吧
作者:
老貓钓鱼
时间:
2014-3-8 20:53
本帖最后由 老貓钓鱼 于 2014-3-8 21:41 编辑
用字节流来复制
package com.item.io;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class RarCopyDemo {
/**
* @param args
*
*/
public static void main(String[] args) {
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try{
bis = new BufferedInputStream(new FileInputStream("c:\\1.rar"));
bos = new BufferedOutputStream(new FileOutputStream("c:\\2.rar"));
byte[] buff = new byte[1024];
int len = 0;
while((len=bis.read(buff)) != -1 ) {
bos.write(buff, 0, len);
}
}catch(IOException e) {
}finally {
if(bis != null) {
try {
bis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
throw new RuntimeException("关闭失败");
}
}
if(bos != null) {
try {
bos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
throw new RuntimeException("关闭失败");
}
}
}
}
}
复制代码
作者:
徐芾清
时间:
2014-3-8 21:08
老貓钓鱼 发表于 2014-3-8 20:53
用字节流来复制
楼上正解
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2