java 文件及目录操作

来源:互联网 发布:怎样装修更省钱 知乎 编辑:程序博客网 时间:2024/06/05 19:23

import  java.io.*;  ­

public  class  FileOperate  {  ­

   public  FileOperate()  {  ­

   }  ­

   /**  ­

     *  新建目录  ­

     *  @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);  ­

   }  ­

原创粉丝点击