您的位置:首页 > 编程语言 > Java开发

java.io.file 各种文件操作

2013-12-10 11:12 656 查看
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);     

    

  }     

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: