zoukankan      html  css  js  c++  java
  • java文件复制/删除

    java文件的一些基本操作,供大家借用,把代码全部复制就可使用运行
    
    package com.file;
    
     
    
    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);  //用来写入字符文件的便捷类, 在给出 File 对象的情况下构造一个 FileWriter 对象
               PrintWriter  myFile  =  new  PrintWriter(resultFile);  //向文本输出流打印对象的格式化表示形式,使用指定文件创建不具有自动行刷新的新 PrintWriter。
               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.delAllFile("E:/1");
       }
    // 拷贝文件
       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[10240];
       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
    }

  • 相关阅读:
    Windows 之 CMD命令
    关于生sql中的空值
    电商物流仓储WMS业务流程
    VS 在代码中括号总是跟着类型后面
    DataTable的Select()方法
    sqlserver 系统表芝士
    CodeMix入门基础知识
    DevExpress v18.1新版亮点——CodeRush for VS篇(二)
    DevExpress v18.1新版亮点——CodeRush for VS篇(一)
    DevExpress v18.1新版亮点——Data Access篇
  • 原文地址:https://www.cnblogs.com/dqsweet/p/4927740.html
Copyright © 2011-2022 走看看