java文件IO操作 – JAVA編程語言程序開發技術文章

[java]
package com.io; 
 
 
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  FileOperate  {   
       /**  
         *  新建目錄  
         *  @param  folderPath  String  如  c:/fqf  
         *  @return  boolean  
         */   
       public static void  newFolder(String  folderPath)  {   
           try  {   
               String  filePath  =  folderPath;   
               File  myFilePath  =  new 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 static void  newFile(String  filePathAndName,  String  fileContent)  {   
      
           try  {   
               String  filePath  =  filePathAndName;   
               File  myFilePath  =  new  File(filePath);   
               if  (!myFilePath.exists())  {   
                   myFilePath.createNewFile();  
                   System.out.println("創建文件成功"); 
               }   
               FileWriter  resultFile  =  new  FileWriter(myFilePath);   
               PrintWriter  myFile  =  new  PrintWriter(resultFile);   
               myFile.println(fileContent);   
               System.out.println("寫入文件成功"); 
               resultFile.close();   
           }   
           catch  (Exception  e)  {   
               System.out.println("新建文件操作出錯");   
               e.printStackTrace();   
           }   
       }   
  
       /**  
         *  刪除文件  
         *  @param  filePathAndName  String  文件路徑及名稱  如c:/fqf.txt  
         *  @param  fileContent  String  
         *  @return  boolean  
         */   
       public static  void  delFile(String  filePathAndName)  {   
           try  {   
               File myDelFile  = new File(filePathAndName);   
               myDelFile.delete();   
               System.out.println("刪除文件成功!"); 
           }   
           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);  //刪除完裡面所有內容   
               File  myFilePath  =  new File(folderPath);   
               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);   
      
       }   
  
        // 拷貝文件 
       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 

作者:yy008871

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。