java.io.file 各种文件操作

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);   
  
  }   
} 

声明:本文采用 BY-NC-SA 协议进行授权,本文链接:java.io.file 各种文件操作

发表评论