疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

java文件和文件夹的增删复制


 

  在使用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 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");

  }

  }