java.io.file 各种文件操作

  1. package cn.edu.tongji.cims.wade.system;     
  2.     
  3. import java.io.*;     
  4.     
  5. public class FileOperate {     
  6.   public FileOperate() {     
  7.   }     
  8.     
  9.   /**   
  10.    * 新建目录   
  11.    * @param folderPath String 如 c:/fqf   
  12.    * @return boolean   
  13.    */    
  14.   public void newFolder(String folderPath) {     
  15.     try {     
  16.       String filePath = folderPath;     
  17.       filePath = filePath.toString();     
  18.       java.io.File myFilePath = new java.io.File(filePath);     
  19.       if (!myFilePath.exists()) {     
  20.         myFilePath.mkdir();     
  21.       }     
  22.     }     
  23.     catch (Exception e) {     
  24.       System.out.println("新建目录操作出错");     
  25.       e.printStackTrace();     
  26.     }     
  27.   }     
  28.     
  29.   /**   
  30.    * 新建文件   
  31.    * @param filePathAndName String 文件路径及名称 如c:/fqf.txt   
  32.    * @param fileContent String 文件内容   
  33.    * @return boolean   
  34.    */    
  35.   public void newFile(String filePathAndName, String fileContent) {     
  36.     
  37.     try {     
  38.       String filePath = filePathAndName;     
  39.       filePath = filePath.toString();     
  40.       File myFilePath = new File(filePath);     
  41.       if (!myFilePath.exists()) {     
  42.         myFilePath.createNewFile();     
  43.       }     
  44.       FileWriter resultFile = new FileWriter(myFilePath);     
  45.       PrintWriter myFile = new PrintWriter(resultFile);     
  46.       String strContent = fileContent;     
  47.       myFile.println(strContent);     
  48.       resultFile.close();     
  49.     
  50.     }     
  51.     catch (Exception e) {     
  52.       System.out.println("新建目录操作出错");     
  53.       e.printStackTrace();     
  54.     
  55.     }     
  56.     
  57.   }     
  58.     
  59.   /**   
  60.    * 删除文件   
  61.    * @param filePathAndName String 文件路径及名称 如c:/fqf.txt   
  62.    * @param fileContent String   
  63.    * @return boolean   
  64.    */    
  65.   public void delFile(String filePathAndName) {     
  66.     try {     
  67.       String filePath = filePathAndName;     
  68.       filePath = filePath.toString();     
  69.       java.io.File myDelFile = new java.io.File(filePath);     
  70.       myDelFile.delete();     
  71.     
  72.     }     
  73.     catch (Exception e) {     
  74.       System.out.println("删除文件操作出错");     
  75.       e.printStackTrace();     
  76.     
  77.     }     
  78.     
  79.   }     
  80.     
  81.   /**   
  82.    * 删除文件夹   
  83.    * @param filePathAndName String 文件夹路径及名称 如c:/fqf   
  84.    * @param fileContent String   
  85.    * @return boolean   
  86.    */    
  87.   public void delFolder(String folderPath) {     
  88.     try {     
  89.       delAllFile(folderPath); //删除完里面所有内容     
  90.       String filePath = folderPath;     
  91.       filePath = filePath.toString();     
  92.       java.io.File myFilePath = new java.io.File(filePath);     
  93.       myFilePath.delete(); //删除空文件夹     
  94.     
  95.     }     
  96.     catch (Exception e) {     
  97.       System.out.println("删除文件夹操作出错");     
  98.       e.printStackTrace();     
  99.     
  100.     }     
  101.     
  102.   }     
  103.     
  104.   /**   
  105.    * 删除文件夹里面的所有文件   
  106.    * @param path String 文件夹路径 如 c:/fqf   
  107.    */    
  108.   public void delAllFile(String path) {     
  109.     File file = new File(path);     
  110.     if (!file.exists()) {     
  111.       return;     
  112.     }     
  113.     if (!file.isDirectory()) {     
  114.       return;     
  115.     }     
  116.     String[] tempList = file.list();     
  117.     File temp = null;     
  118.     for (int i = 0; i < tempList.length; i++) {     
  119.       if (path.endsWith(File.separator)) {     
  120.         temp = new File(path + tempList[i]);     
  121.       }     
  122.       else {     
  123.         temp = new File(path + File.separator + tempList[i]);     
  124.       }     
  125.       if (temp.isFile()) {     
  126.         temp.delete();     
  127.       }     
  128.       if (temp.isDirectory()) {     
  129.         delAllFile(path+"/"+ tempList[i]);//先删除文件夹里面的文件     
  130.         delFolder(path+"/"+ tempList[i]);//再删除空文件夹     
  131.       }     
  132.     }     
  133.   }     
  134.     
  135.   /**   
  136.    * 复制单个文件   
  137.    * @param oldPath String 原文件路径 如:c:/fqf.txt   
  138.    * @param newPath String 复制后路径 如:f:/fqf.txt   
  139.    * @return boolean   
  140.    */    
  141.   public void copyFile(String oldPath, String newPath) {     
  142.     try {     
  143.       int bytesum = 0;     
  144.       int byteread = 0;     
  145.       File oldfile = new File(oldPath);     
  146.       if (oldfile.exists()) { //文件存在时     
  147.         InputStream inStream = new FileInputStream(oldPath); //读入原文件     
  148.         FileOutputStream fs = new FileOutputStream(newPath);     
  149.         byte[] buffer = new byte[1444];     
  150.         int length;     
  151.         while ( (byteread = inStream.read(buffer)) != -1) {     
  152.           bytesum += byteread; //字节数 文件大小     
  153.           System.out.println(bytesum);     
  154.           fs.write(buffer, 0, byteread);     
  155.         }     
  156.         inStream.close();     
  157.       }     
  158.     }     
  159.     catch (Exception e) {     
  160.       System.out.println("复制单个文件操作出错");     
  161.       e.printStackTrace();     
  162.     
  163.     }     
  164.     
  165.   }     
  166.     
  167.   /**   
  168.    * 复制整个文件夹内容   
  169.    * @param oldPath String 原文件路径 如:c:/fqf   
  170.    * @param newPath String 复制后路径 如:f:/fqf/ff   
  171.    * @return boolean   
  172.    */    
  173.   public void copyFolder(String oldPath, String newPath) {     
  174.     
  175.     try {     
  176.       (new File(newPath)).mkdirs(); //如果文件夹不存在 则建立新文件夹     
  177.       File a=new File(oldPath);     
  178.       String[] file=a.list();     
  179.       File temp=null;     
  180.       for (int i = 0; i < file.length; i++) {     
  181.         if(oldPath.endsWith(File.separator)){     
  182.           temp=new File(oldPath+file[i]);     
  183.         }     
  184.         else{     
  185.           temp=new File(oldPath+File.separator+file[i]);     
  186.         }     
  187.     
  188.         if(temp.isFile()){     
  189.           FileInputStream input = new FileInputStream(temp);     
  190.           FileOutputStream output = new FileOutputStream(newPath + "/" +     
  191.               (temp.getName()).toString());     
  192.           byte[] b = new byte[1024 * 5];     
  193.           int len;     
  194.           while ( (len = input.read(b)) != -1) {     
  195.             output.write(b, 0, len);     
  196.           }     
  197.           output.flush();     
  198.           output.close();     
  199.           input.close();     
  200.         }     
  201.         if(temp.isDirectory()){//如果是子文件夹     
  202.           copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]);     
  203.         }     
  204.       }     
  205.     }     
  206.     catch (Exception e) {     
  207.       System.out.println("复制整个文件夹内容操作出错");     
  208.       e.printStackTrace();     
  209.     
  210.     }     
  211.     
  212.   }     
  213.     
  214.   /**   
  215.    * 移动文件到指定目录   
  216.    * @param oldPath String 如:c:/fqf.txt   
  217.    * @param newPath String 如:d:/fqf.txt   
  218.    */    
  219.   public void moveFile(String oldPath, String newPath) {     
  220.     copyFile(oldPath, newPath);     
  221.     delFile(oldPath);     
  222.     
  223.   }     
  224.     
  225.   /**   
  226.    * 移动文件到指定目录   
  227.    * @param oldPath String 如:c:/fqf.txt   
  228.    * @param newPath String 如:d:/fqf.txt   
  229.    */    
  230.   public void moveFolder(String oldPath, String newPath) {     
  231.     copyFolder(oldPath, newPath);     
  232.     delFolder(oldPath);     
  233.     
  234.   }     
  235. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值