Java 写文件,读文件,复制文件,复制文件夹
2012-05-24 10:22
453 查看
这是一个很有用的文件工具类。
可以满足日常文件的基本功能:写文件,读文件,复制文件,复制文件夹等
收藏下来,以后备用哦~
可以满足日常文件的基本功能:写文件,读文件,复制文件,复制文件夹等
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(); } } } } }
收藏下来,以后备用哦~
相关文章推荐
- java文件和文件夹复制、删除、移动操作
- java 文件夹及其子目录 子文件的复制
- 纯Java文件操作工具,支持文件、文件夹的复制、删除、移动
- java NIO实现的文件复制(包括文件与文件夹复制) NIO读取数据与写数据
- 从控制台获取输入的文件目录然后将该目录(包含子目录)下的.java文件复制到D:/java文件夹中
- java学习---------IO流学习---文件流inputstream outputstream(三)实现文件和文件夹的复制 删除
- java实现基于关键字的文件夹(文件)的搜索、文件夹(文件)的复制、删除
- java 复制文件/文件夹
- java 复制文件到另一个文件夹
- ( 转载)纯Java文件操作工具,支持文件、文件夹的复制、删除、移动
- java中复制文件和文件夹Demo,压缩单个文件夹Demo,压缩文件和文件夹Demo
- java 文件复制 文件夹复制工具类
- [JAVA]文件操作--复制文件夹
- java 的 文件、文件夹 的建立、删除、复制以及移动等功能 操作
- java文件和文件夹的增删复制
- java实现文件和文件夹的复制
- java递归实现复制一个文件夹下所有文件的功能
- java复制文件与文件夹
- java复制文件夹以及其中的文件
- Java中实现复制文件或文件夹