風人園

          弱水三千,只取一瓢,便能解渴;佛法無邊,奉行一法,便能得益。
          隨筆 - 99, 文章 - 181, 評論 - 56, 引用 - 0
          數據加載中……

          java文件復制程序(ZT)

          轉載自 http://www.easyjf.com/blog.ejf?cmd=doc&id=1048581

          import java.io.File;
          import java.io.FileInputStream;
          import java.io.FileNotFoundException;
          import java.io.FileOutputStream;
          import java.io.IOException;
          import java.io.InputStream;
          /**
          *
          * <p>
          * Title: 文件處理工具類
          * </p>
          * <p>
          * Description:實現文件的簡單處理,復制文件、目錄等
          * </p>
          * <p>
          * Copyright: Copyright (c) 2005
          * </p>
          * <p>
          * Company: www.easyjf.com
          * </p>
          *
          * @author 天一
          * @version 1.0
          */
          public class FileUtil {
          /**
          * 復制目錄下的文件(不包括該目錄)到指定目錄,會連同子目錄一起復制過去。
          *
          * @param targetFile
          * @param path
          */
          public static void copyFileFromDir(String targetDir, String path) {
          File file = new File(path);
          createFile(targetDir, false);
          if (file.isDirectory()) {
          copyFileToDir(targetDir, listFile(file));
          }
          }
          /**
          * 復制目錄下的文件(不包含該目錄和子目錄,只復制目錄下的文件)到指定目錄。
          *
          * @param targetDir
          * @param path
          */
          public static void copyFileOnly(String targetDir, String path) {
          File file = new File(path);
          File targetFile = new File(targetDir);
          if (file.isDirectory()) {
          File[] files = file.listFiles();
          for (File subFile : files) {
          if (subFile.isFile()) {
          copyFile(targetFile, subFile);
          }
          }
          }
          }
          /**
          * 復制目錄到指定目錄。targetDir是目標目錄,path是源目錄。
          * 該方法會將path以及path下的文件和子目錄全部復制到目標目錄
          *
          * @param targetDir
          * @param path
          */
          public static void copyDir(String targetDir, String path) {
          File targetFile = new File(targetDir);
          createFile(targetFile, false);
          File file = new File(path);
          if (targetFile.isDirectory() && file.isDirectory()) {
          copyFileToDir(targetFile.getAbsolutePath() + "/" + file.getName(),
          listFile(file));
          }
          }
          /**
          * 復制一組文件到指定目錄。targetDir是目標目錄,filePath是需要復制的文件路徑
          *
          * @param targetDir
          * @param filePath
          */
          public static void copyFileToDir(String targetDir, String... filePath) {
          if (targetDir == null || "".equals(targetDir)) {
          System.out.println("參數錯誤,目標路徑不能為空");
          return;
          }
          File targetFile = new File(targetDir);
          if (!targetFile.exists()) {
          targetFile.mkdir();
          } else {
          if (!targetFile.isDirectory()) {
          System.out.println("參數錯誤,目標路徑指向的不是一個目錄!");
          return;
          }
          }
          for (String path : filePath) {
          File file = new File(path);
          if (file.isDirectory()) {
          copyFileToDir(targetDir + "/" + file.getName(), listFile(file));
          } else {
          copyFileToDir(targetDir, file, "");
          }
          }
          }
          /**
          * 復制文件到指定目錄。targetDir是目標目錄,file是源文件名,newName是重命名的名字。
          *
          * @param targetFile
          * @param file
          * @param newName
          */
          public static void copyFileToDir(String targetDir, File file, String newName) {
          String newFile = "";
          if (newName != null && !"".equals(newName)) {
          newFile = targetDir + "/" + newName;
          } else {
          newFile = targetDir + "/" + file.getName();
          }
          File tFile = new File(newFile);
          copyFile(tFile, file);
          }
          /**
          * 復制文件。targetFile為目標文件,file為源文件
          *
          * @param targetFile
          * @param file
          */
          public static void copyFile(File targetFile, File file) {
          if (targetFile.exists()) {
          System.out.println("文件" + targetFile.getAbsolutePath()
          + "已經存在,跳過該文件!");
          return;
          } else {
          createFile(targetFile, true);
          }
          System.out.println("復制文件" + file.getAbsolutePath() + "到"
          + targetFile.getAbsolutePath());
          try {
          InputStream is = new FileInputStream(file);
          FileOutputStream fos = new FileOutputStream(targetFile);
          byte[] buffer = new byte[1024];
          while (is.read(buffer) != -1) {
          fos.write(buffer);
          }
          is.close();
          fos.close();
          } catch (FileNotFoundException e) {
          e.printStackTrace();
          } catch (IOException e) {
          e.printStackTrace();
          }
          }
          public static String[] listFile(File dir) {
          String absolutPath = dir.getAbsolutePath();
          String[] paths = dir.list();
          String[] files = new String[paths.length];
          for (int i = 0; i < paths.length; i++) {
          files[i] = absolutPath + "/" + paths[i];
          }
          return files;
          }
          public static void createFile(String path, boolean isFile){
          createFile(new File(path), isFile);
          }
          public static void createFile(File file, boolean isFile) {
          if (!file.exists()) {
          if (!file.getParentFile().exists()) {
          createFile(file.getParentFile(), false);
          } else {
          if (isFile) {
          try {
          file.createNewFile();
          } catch (IOException e) {
          e.printStackTrace();
          }
          } else {
          file.mkdir();
          }
          }
          }
          }
          }

          posted on 2008-02-26 09:57 風人園 閱讀(2808) 評論(0)  編輯  收藏 所屬分類: Java

          主站蜘蛛池模板: 时尚| 扶风县| 崇阳县| 彭山县| 博湖县| 绥中县| 鄂尔多斯市| 阿合奇县| 耿马| 华亭县| 永丰县| 永和县| 民权县| 平山县| 新泰市| 永济市| 莆田市| 天柱县| 延边| 东宁县| 桐庐县| 广宁县| 兴海县| 西城区| 博爱县| 卫辉市| 三门峡市| 凯里市| 大邑县| 蓝田县| 吐鲁番市| 民乐县| 从江县| 扶沟县| 建德市| 滦平县| 上思县| 萝北县| 炉霍县| 抚顺县| 永福县|