您的位置:首页 > 编程语言 > Java开发

java文件copy,fileutils工具包和缓存流

2015-12-10 11:16 519 查看
根据代码来说话

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.Scanner;

import org.apache.commons.io.FileUtils;

import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils.Text;

public class CharRWStreamTest01 {

public static void main(String[] args) {
long startTime=System.currentTimeMillis();
try {
BufferedReader br=new BufferedReader(
new InputStreamReader(
new FileInputStream("123.rar")));
BufferedWriter bw=new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("125.rar")));
String s;
while((s=br.readLine())!=null){
bw.write(s);
bw.write("\n");
}
bw.flush();
bw.close();
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
long endTIme=System.currentTimeMillis();
System.out.println("it taste "+(endTIme-startTime)+"ms~");
/*以上一段是用缓冲字符流,我copy的是一个566mb的文件,耗时27936ms
*由于我选的是.rar文件,字符流复制的结果会有损坏,编码不同,
*所以应该用字节流来复制,适当的改改就好,
*可以多包一层datainputstream,读入写出更方便。
*/

//      long startTime=System.currentTimeMillis();
//      FileUtils fileUtils=new FileUtils();
//      try {
//          fileUtils.copyFile(new File("123.rar"),new File("124.rar"));
//      } catch (IOException e) {
//          e.printStackTrace();
//      }
//      long endTIme=System.currentTimeMillis();
//      System.out.println("it taste "+(endTIme-startTime)+"ms~");
/*以上被注释的一段使用了fileutils的工具包,可以看出来复制文件非常简单
*apache.org网站上可以找到commoms.io包,下载后buildpath到工程
*/

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: