首页 > 开发 > Java > 正文

java文件和目录的增删复制

2024-07-13 10:09:01
字体:
来源:转载
供稿:网友

在使用java进行开发时常常会用到文件和目录的增删复制等方法。我写了一个小工具类。和大家分享,希望大家指正:

package com.wangpeng.utill;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.InputStream;import java.io.PrintWriter;/** * @author wangpeng *  */public class ToolOfFile { /** * 创建目录 *  * @param folderPath *      目录目录 * @throws Exception */ public static void newFolder(String folderPath) throws Exception { try {  java.io.File myFolder = new java.io.File(folderPath);  if (!myFolder.exists()) {  myFolder.mkdir();  } } catch (Exception e) {  throw e; } } /** * 创建文件 *  * @param filePath *      文件路径 * @throws Exception */ public static void newFile(String filePath) throws Exception { try {  File myFile = new File(filePath);  if (!myFile.exists()) {  myFile.createNewFile();  } } catch (Exception e) {  throw e; } } /** * 创建文件,并写入内容 *  * @param filePath *      文件路径 * @param fileContent *      被写入的文件内容 * @throws Exception */ public static void newFile(String filePath, String fileContent)  throws Exception { // 用来写入字符文件的便捷类 FileWriter fileWriter = null; // 向文本输出流打印对象的格式化表示形式,使用指定文件创建不具有自己主动行刷新的新 PrintWriter printWriter = null; try {  File myFile = new File(filePath);  if (!myFile.exists()) {  myFile.createNewFile();  }  fileWriter = new FileWriter(myFile);  printWriter = new PrintWriter(fileWriter);  printWriter.print(fileContent);  printWriter.flush(); } catch (Exception e) {  throw e; } finally {  if (printWriter != null) {  printWriter.close();  }  if (fileWriter != null) {  fileWriter.close();  } } } /** * 复制文件 *  * @param oldPath *      被拷贝的文件 * @param newPath *      复制到的文件 * @throws Exception */ public static void copyFile(String oldPath, String newPath)  throws Exception { InputStream inStream = null; FileOutputStream outStream = null; try {  int byteread = 0;  File oldfile = new File(oldPath);  // 文件存在时  if (oldfile.exists()) {  inStream = new FileInputStream(oldfile);  outStream = new FileOutputStream(newPath);  byte[] buffer = new byte[1444];  while ((byteread = inStream.read(buffer)) != -1) {   outStream.write(buffer, 0, byteread);  }  outStream.flush();  } } catch (Exception e) {  throw e; } finally {  if (outStream != null) {  outStream.close();  }  if (inStream != null) {  inStream.close();  } } } /** * 复制文件 * @param inStream 被拷贝的文件的输入流 * @param newPath 被复制到的目标 * @throws Exception */ public static void copyFile(InputStream inStream, String newPath)  throws Exception { FileOutputStream outStream = null; try {  int byteread = 0;  outStream = new FileOutputStream(newPath);  byte[] buffer = new byte[1444];  while ((byteread = inStream.read(buffer)) != -1) {  outStream.write(buffer, 0, byteread);  }  outStream.flush(); } catch (Exception e) {  throw e; } finally {  if (outStream != null) {  outStream.close();  }  if (inStream != null) {  inStream.close();  } } } /** * 复制目录 *  * @param oldPath *      被复制的目录路径 * @param newPath *      被复制到的目录路径 * @throws Exception */ public static void copyFolder(String oldPath, String newPath)  throws Exception { try {  (new File(newPath)).mkdirs(); // 假设目录不存在 则建立新目录  File a = new File(oldPath);  String[] file = a.list();  File tempIn = null;  for (int i = 0; i < file.length; i++) {  if (oldPath.endsWith(File.separator)) {   tempIn = new File(oldPath + file[i]);  } else {   tempIn = new File(oldPath + File.separator + file[i]);  }  if (tempIn.isFile()) {   copyFile(tempIn.getAbsolutePath(),    newPath + "/" + (tempIn.getName()).toString());  } else if (tempIn.isDirectory()) {// 假设是子目录   copyFolder(oldPath + "/" + file[i], newPath + "/" + file[i]);  }  } } catch (Exception e) {  throw e; } } /** * 删除文件 *  * @param filePathAndName */ public static void delFileX(String filePathAndName) { File myDelFile = new File(filePathAndName); myDelFile.delete(); } /** * 删除目录 *  * @param path */ public static void delForder(String path) { File delDir = new File(path); if (!delDir.exists()) {  return; } if (!delDir.isDirectory()) {  return; } String[] tempList = delDir.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();  } else if (temp.isDirectory()) {  // 删除完里面全部内容  delForder(path + "/" + tempList[i]);  } } delDir.delete(); } public static void main(String[] args) { String oldPath = "F:/test/aaa/"; String newPath = "F:/test/bbb/"; try {  // ToolOfFile.newFolder("F:/test/hello/");  // ToolOfFile.newFile("F:/test/hello/world.txt","我爱你,the world!");  ToolOfFile.copyFolder(oldPath, newPath);  // ToolOfFile.delForder("F:/test/hello"); } catch (Exception e) {  e.printStackTrace(); } System.out.println("OK"); }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表