• java文件和文件夹复制、删除、移动操作


    [java] view plain copy
     
    1. import java.io.File;  
    2. import java.io.FileInputStream;  
    3. import java.io.FileOutputStream;  
    4. import java.io.FileWriter;  
    5. import java.io.InputStream;  
    6. import java.io.PrintWriter;  
    7.   
    8. public  class  CopyFile  {    
    9.    public  CopyFile()  {    
    10.    }    
    11.    
    12.    /**   
    13.      *  新建目录   
    14.      *  @param  folderPath  String  如  c:/fqf   
    15.      *  @return  boolean   
    16.      */    
    17.    public  void  newFolder(String  folderPath)  {    
    18.        try  {    
    19.            String  filePath  =  folderPath;    
    20.            filePath  =  filePath.toString();    
    21.            java.io.File  myFilePath  =  new  java.io.File(filePath);    
    22.            if  (!myFilePath.exists())  {    
    23.                myFilePath.mkdir();    
    24.            }    
    25.        }    
    26.        catch  (Exception  e)  {    
    27.            System.out.println("新建目录操作出错");    
    28.            e.printStackTrace();    
    29.        }    
    30.    }    
    31.    
    32.    /**   
    33.      *  新建文件   
    34.      *  @param  filePathAndName  String  文件路径及名称  如c:/fqf.txt   
    35.      *  @param  fileContent  String  文件内容   
    36.      *  @return  boolean   
    37.      */    
    38.    public  void  newFile(String  filePathAndName,  String  fileContent)  {    
    39.    
    40.        try  {    
    41.            String  filePath  =  filePathAndName;    
    42.            filePath  =  filePath.toString();  //取的路径及文件名  
    43.            File  myFilePath  =  new  File(filePath);    
    44.            /**如果文件不存在就建一个新文件*/  
    45.            if  (!myFilePath.exists())  {    
    46.                myFilePath.createNewFile();    
    47.            }    
    48.            FileWriter  resultFile  =  new  FileWriter(myFilePath);  //用来写入字符文件的便捷类, 在给出 File 对象的情况下构造一个 FileWriter 对象  
    49.            PrintWriter  myFile  =  new  PrintWriter(resultFile);  //向文本输出流打印对象的格式化表示形式,使用指定文件创建不具有自动行刷新的新 PrintWriter。  
    50.            String  strContent  =  fileContent;    
    51.            myFile.println(strContent);    
    52.            resultFile.close();    
    53.    
    54.        }    
    55.        catch  (Exception  e)  {    
    56.            System.out.println("新建文件操作出错");    
    57.            e.printStackTrace();    
    58.    
    59.        }    
    60.    
    61.    }    
    62.    
    63.    /**   
    64.      *  删除文件   
    65.      *  @param  filePathAndName  String  文件路径及名称  如c:/fqf.txt   
    66.      *  @param  fileContent  String   
    67.      *  @return  boolean   
    68.      */    
    69.    public  void  delFile(String  filePathAndName)  {    
    70.        try  {    
    71.            String  filePath  =  filePathAndName;    
    72.            filePath  =  filePath.toString();    
    73.            java.io.File  myDelFile  =  new  java.io.File(filePath);    
    74.            myDelFile.delete();    
    75.    
    76.        }    
    77.        catch  (Exception  e)  {    
    78.            System.out.println("删除文件操作出错");    
    79.            e.printStackTrace();    
    80.    
    81.        }    
    82.    
    83.    }    
    84.    
    85.    /**   
    86.      *  删除文件夹   
    87.      *  @param  filePathAndName  String  文件夹路径及名称  如c:/fqf   
    88.      *  @param  fileContent  String   
    89.      *  @return  boolean   
    90.      */    
    91.    public  void  delFolder(String  folderPath)  {    
    92.        try  {    
    93.            delAllFile(folderPath);  //删除完里面所有内容    
    94.            String  filePath  =  folderPath;    
    95.            filePath  =  filePath.toString();    
    96.            java.io.File  myFilePath  =  new  java.io.File(filePath);    
    97.            myFilePath.delete();  //删除空文件夹    
    98.    
    99.        }    
    100.        catch  (Exception  e)  {    
    101.            System.out.println("删除文件夹操作出错");    
    102.            e.printStackTrace();    
    103.    
    104.        }    
    105.    
    106.    }    
    107.    
    108.    /**   
    109.      *  删除文件夹里面的所有文件   
    110.      *  @param  path  String  文件夹路径  如  c:/fqf   
    111.      */    
    112.    public  void  delAllFile(String  path)  {    
    113.        File  file  =  new  File(path);    
    114.        if  (!file.exists())  {    
    115.            return;    
    116.        }    
    117.        if  (!file.isDirectory())  {    
    118.            return;    
    119.        }    
    120.        String[]  tempList  =  file.list();    
    121.        File  temp  =  null;    
    122.        for  (int  i  =  0;  i  <  tempList.length;  i++)  {    
    123.            if  (path.endsWith(File.separator))  {    
    124.                temp  =  new  File(path  +  tempList[i]);    
    125.            }    
    126.            else  {    
    127.                temp  =  new  File(path  +  File.separator  +  tempList[i]);    
    128.            }    
    129.            if  (temp.isFile())  {    
    130.                temp.delete();    
    131.            }    
    132.            if  (temp.isDirectory())  {    
    133.                delAllFile(path+"/"+  tempList[i]);//先删除文件夹里面的文件    
    134.                delFolder(path+"/"+  tempList[i]);//再删除空文件夹    
    135.            }    
    136.        }    
    137.    }    
    138.    
    139.    /**   
    140.      *  复制单个文件   
    141.      *  @param  oldPath  String  原文件路径  如:c:/fqf.txt   
    142.      *  @param  newPath  String  复制后路径  如:f:/fqf.txt   
    143.      *  @return  boolean   
    144.      */    
    145.    public  void  copyFile(String  oldPath,  String  newPath)  {    
    146.        try  {    
    147. //           int  bytesum  =  0;    
    148.            int  byteread  =  0;    
    149.            File  oldfile  =  new  File(oldPath);    
    150.            if  (oldfile.exists())  {  //文件存在时    
    151.                InputStream  inStream  =  new  FileInputStream(oldPath);  //读入原文件   
    152.                FileOutputStream  fs  =  new  FileOutputStream(newPath);    
    153.                byte[]  buffer  =  new  byte[1444];    
    154. //               int  length;    
    155.                while  (  (byteread  =  inStream.read(buffer))  !=  -1)  {    
    156. //                   bytesum  +=  byteread;  //字节数  文件大小    
    157. //                   System.out.println(bytesum);    
    158.                    fs.write(buffer,  0,  byteread);    
    159.                }    
    160.                inStream.close();    
    161.            }    
    162.        }    
    163.        catch  (Exception  e)  {    
    164.            System.out.println("复制单个文件操作出错");    
    165.            e.printStackTrace();    
    166.    
    167.        }    
    168.    
    169.    }    
    170.    
    171.    /**   
    172.      *  复制整个文件夹内容   
    173.      *  @param  oldPath  String  原文件路径  如:c:/fqf   
    174.      *  @param  newPath  String  复制后路径  如:f:/fqf/ff   
    175.      *  @return  boolean   
    176.      */    
    177.    public  void  copyFolder(String  oldPath,  String  newPath)  {    
    178.    
    179.        try  {    
    180.            (new  File(newPath)).mkdirs();  //如果文件夹不存在  则建立新文件夹    
    181.            File  a=new  File(oldPath);    
    182.            String[]  file=a.list();    
    183.            File  temp=null;    
    184.            for  (int  i  =  0;  i  <  file.length;  i++)  {    
    185.                if(oldPath.endsWith(File.separator)){    
    186.                    temp=new  File(oldPath+file[i]);    
    187.                }    
    188.                else{    
    189.                    temp=new  File(oldPath+File.separator+file[i]);    
    190.                }    
    191.    
    192.                if(temp.isFile()){    
    193.                    FileInputStream  input  =  new  FileInputStream(temp);    
    194.                    FileOutputStream  output  =  new  FileOutputStream(newPath  +  "/"  +   
    195.                            (temp.getName()).toString());    
    196.                    byte[]  b  =  new  byte[1024  *  5];    
    197.                    int  len;    
    198.                    while  (  (len  =  input.read(b))  !=  -1)  {    
    199.                        output.write(b,  0,  len);    
    200.                    }    
    201.                    output.flush();    
    202.                    output.close();    
    203.                    input.close();    
    204.                }    
    205.                if(temp.isDirectory()){//如果是子文件夹    
    206.                    copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]);    
    207.                }    
    208.            }    
    209.        }    
    210.        catch  (Exception  e)  {    
    211.            System.out.println("复制整个文件夹内容操作出错");    
    212.            e.printStackTrace();    
    213.    
    214.        }    
    215.    
    216.    }    
    217.    
    218.    /**   
    219.      *  移动文件到指定目录   
    220.      *  @param  oldPath  String  如:c:/fqf.txt   
    221.      *  @param  newPath  String  如:d:/fqf.txt   
    222.      */    
    223.    public  void  moveFile(String  oldPath,  String  newPath)  {    
    224.        copyFile(oldPath,  newPath);    
    225.        delFile(oldPath);    
    226.    
    227.    }    
    228.    
    229.    /**   
    230.      *  移动文件到指定目录   
    231.      *  @param  oldPath  String  如:c:/fqf.txt   
    232.      *  @param  newPath  String  如:d:/fqf.txt   
    233.      */    
    234.    public  void  moveFolder(String  oldPath,  String  newPath)  {    
    235.        copyFolder(oldPath,  newPath);    
    236.        delFolder(oldPath);    
    237.    
    238.    }    
    239.    public static void main(String[] args){  
    240.     CopyFile file = new CopyFile();  
    241. //    file.newFolder("newFolder22222");  
    242.     file.delAllFile("E:/1");  
    243.    }  
    244. // 拷贝文件  
    245.    private void copyFile2(String source, String dest) {  
    246.    try {  
    247.    File in = new File(source);  
    248.    File out = new File(dest);  
    249.    FileInputStream inFile = new FileInputStream(in);  
    250.    FileOutputStream outFile = new FileOutputStream(out);  
    251.    byte[] buffer = new byte[10240];  
    252.    int i = 0;  
    253.    while ((i = inFile.read(buffer)) != -1) {  
    254.    outFile.write(buffer, 0, i);  
    255.    }//end while  
    256.    inFile.close();  
    257.    outFile.close();  
    258.    }//end try  
    259.    catch (Exception e) {  
    260.   
    261.    }//end catch  
    262.    }//end copyFile  
    263.   
    264. }  
  • 相关阅读:
    以&quot;小刀会“的成败论当今创业成败
    COCOS2D 学习笔记
    password加密的算法
    bzoj1087【SCOI2005】互不侵犯King
    HDU--2222--Keywords Search--AC自己主动机
    【leetcode】Subsets II (middle) ☆
    【leetcode】Word Search (middle)
    【hadoop2.6.0】利用JAVA API 实现数据上传
    【leetcode】Palindrome Partitioning II(hard) ☆
    【hadoop2.6.0】利用Hadoop的 Java API
  • 原文地址:https://www.cnblogs.com/daochong/p/7019455.html
Copyright © 2020-2023  润新知