• 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 inStream 被拷贝的文件的输入流
    	 * @param newPath 被复制到的目标
    	 * @throws Exception
    	 */
    	public static void copyFile(InputStream inStream, String newPath)
    			throws Exception {
    		FileOutputStream outStream = null;
    		try {
    			int byteread = 0;
    			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"); } }


     

  • 相关阅读:
    网页常用的小工具--返回顶部
    关于javascript在作用域中的变量定义你所不知道的一些东西
    javascript中的function
    javascript判断非空
    jq实现多banner效果图
    JavaScript对下一个元旦倒计时,经常用于网店限时销售
    oracle 查看锁表情况并处理锁表
    ORACLE中的FTP例子代码
    Oracle包被锁定的原因分析及解决方案
    DOS和批处理基本命令
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/7025706.html
Copyright © 2020-2023  润新知