java实现文件拷贝

 时间:2024-10-18 04:41:46

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选中文本段中替换文本内容
  • 热门搜索
    限号是什么意思 支那是什么意思 质数是什么意思 风光旖旎的意思 5万左右买什么二手车比较好 血压仪什么牌子的好 矜持不苟的意思 不可胜数的意思 糟糕的意思 obm是什么意思