複製文件

步驟:java

  (1) 要複製文件,首先得先要有文件;面試

  (2) 而後把文件裏面的內容讀取到輸入流中;數組

  (3) 再把輸入流中的內容寫到輸出流中;eclipse

  (4) 再從輸出流中寫入到目的文件中;spa

  (5) 最後牢記要關閉流通道。code

① 當文件得大小超過 int 時,應該分開一部分一部分的傳,同時傳時會溢出,用byte數組當作緩衝區。注意關閉流的順序。blog

 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 時,能夠把文件的大小設置爲數組的大小。注意關閉流的順序。ip

 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 }

如有錯誤之處,歡迎指正。謝謝!get

相關文章
相關標籤/搜索