复制文件

Posted hong_Yu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了复制文件相关的知识,希望对你有一定的参考价值。

步骤:

  (1) 要复制文件,首先得先要有文件;

  (2) 然后把文件里面的内容读取到输入流中;

  (3) 再把输入流中的内容写到输出流中;

  (4) 再从输出流中写入到目的文件中;

  (5) 最后牢记要关闭流通道。

① 当文件得大小超过 int 时,应该分开一部分一部分的传,同时传时会溢出,用byte数组当做缓冲区。注意关闭流的顺序。

 1 package copy;
 2 
 3 import java.io.File;
 4 import java.io.FileInputStream;
 5 import java.io.FileNotFoundException;
 6 import java.io.FileOutputStream;
 7 import java.io.IOException;
 8 import java.io.InputStream;
 9 import java.io.OutputStream;
10 
11 public class Test1 {
12 
13     public static void main(String[] args) {
14         // TODO Auto-generated method stub
15         File from = new File("D:/安装包/java/eclipse-jee-oxygen-2-win32-x86_64.zip");
16         File to = new File("D:/"+from.getName());
17         try {
18             InputStream is = new FileInputStream(from);
19             OutputStream os = new FileOutputStream(to,true);
20             byte[] b = new byte[1024];
21             int i =is.read(b);
22             while(i!=-1) {
23                 os.write(b, 0, i);
24                 i=is.read(b);
25                 System.out.println(i);
26             }
27             os.close();//先关闭输出流
28             is.close();//再关闭输入流
29         } catch (FileNotFoundException e) {
30             // TODO Auto-generated catch block
31             e.printStackTrace();
32         } catch (IOException e) {
33             // TODO Auto-generated catch block
34             e.printStackTrace();
35         }
36         System.out.println("复制完成");
37     }
38 }

②当文件大小没有超过 int 时,可以把文件的大小设置为数组的大小。注意关闭流的顺序。

 1 package copy;
 2 
 3 import java.io.File;
 4 import java.io.FileInputStream;
 5 import java.io.FileNotFoundException;
 6 import java.io.FileOutputStream;
 7 import java.io.IOException;
 8 import java.io.InputStream;
 9 import java.io.OutputStream;
10 
11 public class Test0 {
12 
13     public static void main(String[] args) {
14         // TODO Auto-generated method stub
15         File from = new File("D:/东软实训/面试题目/Java面试宝典.doc");
16         File to = new File("D:/"+from.getName());
17         try {
18             /*读源文件*/
19             InputStream is = new FileInputStream(from);
20             byte[] b = new byte[(int) from.length()];
21             is.read(b);
22             is.close();//读完后,输入流此时就可以关闭了
23             /*写到目标文件*/
24             OutputStream os = new FileOutputStream(to);
25             os.write(b);
26             os.close();//关闭输出流
27             System.out.println("复制完成");
28         } catch (FileNotFoundException e) {
29             // TODO Auto-generated catch block
30             e.printStackTrace();
31         } catch (IOException e) {
32             // TODO Auto-generated catch block
33             e.printStackTrace();
34         }
35     }
36 }

若有错误之处,欢迎指正。谢谢!

以上是关于复制文件的主要内容,如果未能解决你的问题,请参考以下文章

vue —— VSCode代码片段

这两个代码片段之间有区别吗?如果有,那又如何? [复制]

Prometheus配置文件

什么是在 C++ 中获取总内核数量的跨平台代码片段? [复制]

Android:使用支持片段管理器时复制片段

VsCode 代码片段-提升研发效率