JAVA檔案複製

來源:互聯網
上載者:User

package com;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.PrintWriter;

public  class  CopyFile  { 
   public  CopyFile()  { 
   } 
 
   /** 
     *  建立目錄 
     *  @param  folderPath  String  如  c:/fqf 
     *  @return  boolean 
     */ 
   public  void  newFolder(String  folderPath)  { 
       try  { 
           String  filePath  =  folderPath; 
           filePath  =  filePath.toString(); 
           java.io.File  myFilePath  =  new  java.io.File(filePath); 
           if  (!myFilePath.exists())  { 
               myFilePath.mkdir(); 
           } 
       } 
       catch  (Exception  e)  { 
           System.out.println("建立目錄操作出錯"); 
           e.printStackTrace(); 
       } 
   } 
 
   /** 
     *  建立檔案 
     *  @param  filePathAndName  String  檔案路徑及名稱  如c:/fqf.txt 
     *  @param  fileContent  String  檔案內容 
     *  @return  boolean 
     */ 
   public  void  newFile(String  filePathAndName,  String  fileContent)  { 
 
       try  { 
           String  filePath  =  filePathAndName; 
           filePath  =  filePath.toString(); 
           File  myFilePath  =  new  File(filePath); 
           if  (!myFilePath.exists())  { 
               myFilePath.createNewFile(); 
           } 
           FileWriter  resultFile  =  new  FileWriter(myFilePath); 
           PrintWriter  myFile  =  new  PrintWriter(resultFile); 
           String  strContent  =  fileContent; 
           myFile.println(strContent); 
           resultFile.close(); 
 
       } 
       catch  (Exception  e)  { 
           System.out.println("建立檔案操作出錯"); 
           e.printStackTrace(); 
 
       } 
 
   } 
 
   /** 
     *  刪除檔案 
     *  @param  filePathAndName  String  檔案路徑及名稱  如c:/fqf.txt 
     *  @param  fileContent  String 
     *  @return  boolean 
     */ 
   public  void  delFile(String  filePathAndName)  { 
       try  { 
           String  filePath  =  filePathAndName; 
           filePath  =  filePath.toString(); 
           java.io.File  myDelFile  =  new  java.io.File(filePath); 
           myDelFile.delete(); 
 
       } 
       catch  (Exception  e)  { 
           System.out.println("刪除檔案操作出錯"); 
           e.printStackTrace(); 
 
       } 
 
   } 
 
   /** 
     *  刪除檔案夾 
     *  @param  filePathAndName  String  檔案夾路徑及名稱  如c:/fqf 
     *  @param  fileContent  String 
     *  @return  boolean 
     */ 
   public  void  delFolder(String  folderPath)  { 
       try  { 
           delAllFile(folderPath);  //刪除完裡面所有內容 
           String  filePath  =  folderPath; 
           filePath  =  filePath.toString(); 
           java.io.File  myFilePath  =  new  java.io.File(filePath); 
           myFilePath.delete();  //刪除空檔案夾 
 
       } 
       catch  (Exception  e)  { 
           System.out.println("刪除檔案夾操作出錯"); 
           e.printStackTrace(); 
 
       } 
 
   } 
 
   /** 
     *  刪除檔案夾裡面的所有檔案 
     *  @param  path  String  檔案夾路徑  如  c:/fqf 
     */ 
   public  void  delAllFile(String  path)  { 
       File  file  =  new  File(path); 
       if  (!file.exists())  { 
           return; 
       } 
       if  (!file.isDirectory())  { 
           return; 
       } 
       String[]  tempList  =  file.list(); 
       File  temp  =  null; 
       for  (int  i  =  0;  i  <  tempList.length;  i++)  { 
           if  (path.endsWith(File.separator))  { 
               temp  =  new  File(path  +  tempList[i]); 
           } 
           else  { 
               temp  =  new  File(path  +  File.separator  +  tempList[i]); 
           } 
           if  (temp.isFile())  { 
               temp.delete(); 
           } 
           if  (temp.isDirectory())  { 
               delAllFile(path+"/"+  tempList[i]);//先刪除檔案夾裡面的檔案 
               delFolder(path+"/"+  tempList[i]);//再刪除空檔案夾 
           } 
       } 
   } 
 
   /** 
     *  複製單個檔案 
     *  @param  oldPath  String  原檔案路徑  如:c:/fqf.txt 
     *  @param  newPath  String  複製後路徑  如:f:/fqf.txt 
     *  @return  boolean 
     */ 
   public  void  copyFile(String  oldPath,  String  newPath)  { 
       try  { 
           int  bytesum  =  0; 
           int  byteread  =  0; 
           File  oldfile  =  new  File(oldPath); 
           if  (oldfile.exists())  {  //檔案存在時 
               InputStream  inStream  =  new  FileInputStream(oldPath);  //讀入原檔案 
               FileOutputStream  fs  =  new  FileOutputStream(newPath); 
               byte[]  buffer  =  new  byte[1444]; 
               int  length; 
               while  (  (byteread  =  inStream.read(buffer))  !=  -1)  { 
                   bytesum  +=  byteread;  //位元組數  檔案大小 
                   System.out.println(bytesum); 
                   fs.write(buffer,  0,  byteread); 
               } 
               inStream.close(); 
           } 
       } 
       catch  (Exception  e)  { 
           System.out.println("複製單個檔案操作出錯"); 
           e.printStackTrace(); 
 
       } 
 
   } 
 
   /** 
     *  複製整個檔案夾內容 
     *  @param  oldPath  String  原檔案路徑  如:c:/fqf 
     *  @param  newPath  String  複製後路徑  如:f:/fqf/ff 
     *  @return  boolean 
     */ 
   public  void  copyFolder(String  oldPath,  String  newPath)  { 
 
       try  { 
           (new  File(newPath)).mkdirs();  //如果檔案夾不存在  則建立新檔案夾 
           File  a=new  File(oldPath); 
           String[]  file=a.list(); 
           File  temp=null; 
           for  (int  i  =  0;  i  <  file.length;  i++)  { 
               if(oldPath.endsWith(File.separator)){ 
                   temp=new  File(oldPath+file[i]); 
               } 
               else{ 
                   temp=new  File(oldPath+File.separator+file[i]); 
               } 
 
               if(temp.isFile()){ 
                   FileInputStream  input  =  new  FileInputStream(temp); 
                   FileOutputStream  output  =  new  FileOutputStream(newPath  +  "/"  + 
                           (temp.getName()).toString()); 
                   byte[]  b  =  new  byte[1024  *  5]; 
                   int  len; 
                   while  (  (len  =  input.read(b))  !=  -1)  { 
                       output.write(b,  0,  len); 
                   } 
                   output.flush(); 
                   output.close(); 
                   input.close(); 
               } 
               if(temp.isDirectory()){//如果是子檔案夾 
                   copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]); 
               } 
           } 
       } 
       catch  (Exception  e)  { 
           System.out.println("複製整個檔案夾內容操作出錯"); 
           e.printStackTrace(); 
 
       } 
 
   } 
 
   /** 
     *  移動檔案到指定目錄 
     *  @param  oldPath  String  如:c:/fqf.txt 
     *  @param  newPath  String  如:d:/fqf.txt 
     */ 
   public  void  moveFile(String  oldPath,  String  newPath)  { 
       copyFile(oldPath,  newPath); 
       delFile(oldPath); 
 
   } 
 
   /** 
     *  移動檔案到指定目錄 
     *  @param  oldPath  String  如:c:/fqf.txt 
     *  @param  newPath  String  如:d:/fqf.txt 
     */ 
   public  void  moveFolder(String  oldPath,  String  newPath)  { 
       copyFolder(oldPath,  newPath); 
       delFolder(oldPath); 
 
   } 
   public static void main(String[] args) {
    CopyFile file = new CopyFile();
//    file.newFolder("newFolder22222");
    file.newFile("test.txt","fdsfdsfdsfs");
   }
// 拷貝檔案
   private void copyFile2(String source, String dest) {
   try {
   File in = new File(source);
   File out = new File(dest);
   FileInputStream inFile = new FileInputStream(in);
   FileOutputStream outFile = new FileOutputStream(out);
   byte[] buffer = new byte[1024];
   int i = 0;
   while ((i = inFile.read(buffer)) != -1) {
   outFile.write(buffer, 0, i);
   }//end while
   inFile.close();
   outFile.close();
   }//end try
   catch (Exception e) {

   }//end catch
   }//end copyFile

}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.