java实现文件拷贝

 时间:2026-02-16 19:21:04

1、如果想要实现文件的拷贝操作,那么现在有两种做法:

1、将所有的文件内容一次性读取到程序之中,而后一次性输出;

2、采用边读边输出的方,那么现在就不会占用过大的内存空间;

由于现在有可能要拷贝二进制数据,那么一定使用字节流比较合适一下。

java实现文件拷贝

2、如果输入参数正确了,那么应该进行源文件的验证。

package com.gwolf;

import java.io.File;

public class TestDemo {

        public static void main(String[] args) throws Exception{

                if(args.length!=2) {

                        System.out.println("命令执行错误!");

                        System.exit(1);

                }

                

                File inFile = new File(args[0]);

                if(!inFile.exists()) {

                        System.out.println("源文件不存在,请确认执行路径");

                        System.exit(1);

                }

                

                File outFile = new File(args[1]);

        }

}

java实现文件拷贝

3、如果此时源文件正确,那么就需要定义输出文件,同事要考虑到输出文件有目录的情况。

package com.gwolf;

import java.io.File;

public class TestDemo {

        public static void main(String[] args) throws Exception{

                if(args.length!=2) {

                        System.out.println("命令执行错误!");

                        System.exit(1);

                }

                

                File inFile = new File(args[0]);

                if(!inFile.exists()) {

                        System.out.println("源文件不存在,请确认执行路径");

                        System.exit(1);

                }

                

                File outFile = new File(args[1]);

                if(!outFile.getParentFile().exists()) {

                        outFile.getParentFile().mkdirs();// 创建目录

                }

                

                

        }

}

java实现文件拷贝

4、接下来实现文件内容的拷贝。

package com.gwolf;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

public class TestDemo {

        public static void main(String[] args) throws Exception{

                if(args.length!=2) {

                        System.out.println("命令执行错误!");

                        System.exit(1);

                }

                

                File inFile = new File(args[0]);

                if(!inFile.exists()) {

                        System.out.println("源文件不存在,请确认执行路径");

                        System.exit(1);

                }

                

                File outFile = new File(args[1]);

                if(!outFile.getParentFile().exists()) {

                        outFile.getParentFile().mkdirs();// 创建目录

                }

                

                

                InputStream input = new FileInputStream(inFile);

                OutputStream outputStream = new FileOutputStream(outFile);

                

                int temp = 0;

                while((temp=input.read())!=-1) {

                        outputStream.write(temp);

                }

                

                

        }

}

java实现文件拷贝

5、文件读取完成之后,关闭所有的连接。

package com.gwolf;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

public class TestDemo {

        public static void main(String[] args) throws Exception{

                if(args.length!=2) {

                        System.out.println("命令执行错误!");

                        System.exit(1);

                }

                

                File inFile = new File(args[0]);

                if(!inFile.exists()) {

                        System.out.println("源文件不存在,请确认执行路径");

                        System.exit(1);

                }

                

                File outFile = new File(args[1]);

                if(!outFile.getParentFile().exists()) {

                        outFile.getParentFile().mkdirs();// 创建目录

                }

                

                

                InputStream input = new FileInputStream(inFile);

                OutputStream outputStream = new FileOutputStream(outFile);

                

                int temp = 0;

                while((temp=input.read())!=-1) {

                        outputStream.write(temp);

                }

                

                input.close();

                outputStream.close();

        }

}

java实现文件拷贝

6、这个时候发现,的确实现了拷贝,但是这个拷贝的速度实在太慢了。现在的程序属于单个字节的拷贝。我们必须采用部分数据读取并保存的方式。

package com.gwolf;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

public class TestDemo {

        public static void main(String[] args) throws Exception{

                if(args.length!=2) {

                        System.out.println("命令执行错误!");

                        System.exit(1);

                }

                

                File inFile = new File(args[0]);

                if(!inFile.exists()) {

                        System.out.println("源文件不存在,请确认执行路径");

                        System.exit(1);

                }

                

                File outFile = new File(args[1]);

                if(!outFile.getParentFile().exists()) {

                        outFile.getParentFile().mkdirs();// 创建目录

                }

                

                

                InputStream input = new FileInputStream(inFile);

                OutputStream outputStream = new FileOutputStream(outFile);

                

                int temp = 0;

                byte data[] = new byte[1024];

                

                while((temp=input.read(data))!=-1) {

                        outputStream.write(data,0,temp);

                }

                

                input.close();

                outputStream.close();

        }

}

java实现文件拷贝

7、在以后的代码编写过程之中一定会给你一个InputStream ,就需要按照以上的方法进行内容的输出。

  • AxureRP如何制作动态面板拖动滑块解锁
  • 教你安装虚拟机及汉化
  • Processing 3:2D/3D纹理绘制(texture)
  • C4D插件U- render安装及不能打开实时渲染方法
  • 如何在intellij IDEA选中文本段中替换文本内容
  • 热门搜索
    清明节手抄报好看简单 1~6年级一等奖手抄报 节约用水手抄报图片 反邪教手抄报 中国传统文化手抄报 清明的手抄报 安全教育手抄报内容 安全手抄报 端午手抄报 祖国在我心中手抄报