java 实现文件复制的两种方式
来源:互联网 发布:php与asp的区别 编辑:程序博客网 时间:2024/04/25 14:24
1.将源文件中的内容全部读取到内存中,并一次性写入到目标文件
2.不将源文件中的内容全部读取到内存中来,而是采取边读边写的方式
下面就是采用这两种方法对比
2.不将源文件中的内容全部读取到内存中来,而是采取边读边写的方式
下面就是采用这两种方法对比
- package zzs.file.demo;
- 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.OutputStream;
- public class FileCopy {
- private File inputFile;
- private File outputFile;
- private InputStream inputStream;
- private OutputStream outputStream;
- public FileCopy(String inputPath,String outputPath) throws FileNotFoundException{
- inputFile=new File(inputPath);
- outputFile=new File(outputPath);
- inputStream=new FileInputStream(inputFile);
- outputStream=new FileOutputStream(outputFile);
- }
- //一次性把数据全部读取到内存中来,再一次性写入
- public void copy1() throws IOException{
- byte b[]=new byte[(int)inputFile.length()];
- inputStream.read(b); //一次性读入
- outputStream.write(b); //一次性写入
- // inputStream.close();
- // outputStream.close();
- }
- //边读边写
- public void copy2() throws IOException{
- int temp=0;
- while((temp=inputStream.read())!=-1){
- outputStream.write(temp);
- }
- inputStream.close();
- outputStream.close();
- }
- public File getInputFile() {
- return inputFile;
- }
- public void setInputFile(File inputFile) {
- this.inputFile = inputFile;
- }
- public File getOutputFile() {
- return outputFile;
- }
- public void setOutputFile(File outputFile) {
- this.outputFile = outputFile;
- }
- public static void main(String[] args) throws IOException{
- String inputPath="e:"+File.separator+"Xfire.rar";
- String outputPath="f:"+File.separator+inputPath.substring(inputPath.indexOf(File.separator));
- FileCopy fileCopy=new FileCopy(inputPath, outputPath);
- long start1=System.currentTimeMillis();
- fileCopy.copy1();
- long end1=System.currentTimeMillis();
- System.out.println("一次性全部读入内存复制文件大小为"+fileCopy.getInputFile().length()+"位花费时间为:"+(end1-start1)+"ms");
- fileCopy.getOutputFile().delete();
- long start2=System.currentTimeMillis();
- fileCopy.copy2();
- long end2=System.currentTimeMillis();
- System.out.println("边读边写复制文件大小为"+fileCopy.getInputFile().length()+"位花费时间为:"+(end2-start2)+"ms");
- }
- }
0 0
- java 实现文件复制的两种方式
- java 实现文件复制的两种方式
- java 实现文件复制的两种方式
- Java实现文件复制的两种方式
- Java中复制文件的两种方式
- java复制单个文件的两种方式
- java实现文件下载的两种方式
- java实现文件下载的两种方式
- 四种方式实现文件的复制
- C#实现深复制的两种方式
- 两种方式复制一个mp3文件
- Java_IO_两种文件复制方式比较
- Java_IO_两种文件复制方式比较
- 4种java复制文件的方式
- java复制文件的4种方式
- java 文件复制的几种方式
- java复制文件的4种方式
- java复制文件的4种方式
- ubuntu 安装Zend Studo 后不能安装插件
- 数据库学习14-回顾
- Hibernate二级缓存详解
- 替换文件中指定内容
- CRC校验
- java 实现文件复制的两种方式
- 2014-07-07 日记
- 原码, 反码, 补码, 详解
- Extjs_extend
- Facade - 外观模式
- hdu 1159 Common Subsequence(动态规划:最长公共子序列)
- Android横竖屏切换总结
- 【版本适配】iOS中文本的自适应高度
- 前端开发中Cookie那些事儿