转:java操作文件

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

你可能感兴趣的:(java,职场,target,休闲,blank)