java实现简单文件操作工具类

本篇带来关于文件操作的简单工具类,包括文件夹创建,文件夹删除,文件创建,文件重命名,文件复制,文件删除。如果需要文件夹复制,其实就是创建文件夹和复制文件的操作。下面直接上代码

package com.util;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 文件操作工具类,提供文件夹创建 、文件夹删除、文件创建、文件删除、文件重命名、文件复制等功能
 */
public class FileControlUnitl {

    /**
     * 创建文件夹
     * @param url 创建的文件夹路径,例如:E:\\Workspaces\\MyEclipse 10\\test\\src\\com\\file,其中,file就是将要创建的文件夹名字
     * @return  boolean  返回创建成功(true)或者失败(false)
     * @throws Exception
     */
    public static boolean createFolder(String url) throws Exception{
        url = url.replace("\\", "/");
        File folder = new File(url);
        if(folder.isDirectory() || folder.exists()){
            throw new IOException("创建文件夹失败:["+folder+"]文件夹已经存在!");
        }
        if(!folder.isFile()){
                folder.mkdirs();
        }
        //检测文件夹是否创建成功
        if(folder.isDirectory() && folder.exists()){
            return true;
        }else {
            return false;
        }
    }

    /**
     * 根据文件夹名及其所在路径删除文件夹
     * @param url 文件及其所在路径,例如::E:\\Workspaces\\MyEclipse 10\\test\\src\\com\\file
     * @return
     * @throws IOException
     */
    public static boolean deleteFolder(String url) throws IOException{
        url = url.replace("\\", "/");
        File folder = new File(url);
        //判断是否为目录
        if(!folder.isDirectory()){
            throw new IOException("文件夹删除失败:["+folder+"]不是目录!");
        }
        if(!folder.exists()){
            throw new IOException("文件夹删除失败:["+folder+"]文件夹不存在!");
        }
        //判断文件是否存在文件,存在文件不允许删除
        if(folder.listFiles().length>0){
            throw new IOException("文件夹删除失败:["+folder+"]目录下面存在文件或文件夹!");
        }
        //删除文件夹
        folder.delete();
        //返回文件夹删除是否成功
        if(folder.exists()){
            return false;
        }else{
            return true;
        }
    }

    /**
     * 根据路径和文件名创建文件
     * @param url 创建文件的路径,例如:E:\\Workspaces\\MyEclipse 10\\test\\src\\com\\file
     * @param name 文件名 例如:testfile.java
     * @return boolean 返回创建成功(true)或者失败(false)
     * @throws Exception
     */
    public static boolean createFile(String url,String name) throws Exception{
        url = url.replace("\\", "/");
        File folder = new File(url);
        //判断是否是目录
        if(!folder.isDirectory()){
            throw new IOException("创建文件失败:["+folder+"]不是文件夹路径!");
        }
        //判断文件是否已经存在
        url = url + "/" + name;
        File file = new File(url);
        if(file.exists()){
            throw new IOException("创建文件失败:["+name+"]文件已经存在!");
        }
        //创建文件
        file.createNewFile();
        //检测文件是否创建成功
        if(file.exists() && file.isFile()){
            return true;
        }else {
            return false;
        }
    }

    /**
     * 根据旧文件地址和文件名,重命名文件名
     * @param url  旧文件地址以及文件名,如:E:\\Workspaces\\MyEclipse 10\\test\\src\\com\\file\\TestFile.java
     * @param newname 新文件名:New_TestFile.java
     * @return
     * @throws IOException
     */
    public static boolean reanmeFile(String url,String newname) throws IOException{
        String old_url = url.replace("\\", "/");
        File old_file = new File(old_url);
        if(!old_file.isFile()||!old_file.exists()){
            throw new IOException("文件重命名失败:["+old_file+"]文件不存在!");
        }
        //获取旧的文件名
        String old_name = old_file.getName();
        //获取父文件路径
        String parent_url = old_file.getParent();
        //重命名
        String  new_url = parent_url + "/" + newname;
        File new_file = new File(new_url);
        old_file.renameTo(new_file);
        //校验文件是否重命名成功
        String new_name = new_file.getName();
        if(old_name.equals(new_name)){
            return false;
        }else{
            return true;
        }
    }

    /**
     * 根据源文件和复制路径,复制文件
     * @param sourceurl 源文件及其路径 如:E:\\Workspaces\\MyEclipse 10\\test\\src\\com\\file\\TestFile.java
     * @param copyurl 复制文件路径 如:E:\\Workspaces\\MyEclipse 10\\test\\src\\com\\file\\copyfile
     * @return
     * @throws Exception
     */
    public static boolean copyFile(String sourceurl,String copyurl) throws Exception{
        sourceurl = sourceurl.replace("\\", "/");
        copyurl =  copyurl.replace("\\", "/");
        File source_file = new File(sourceurl);
        File copy_file = new File(copyurl);
        //判断文件以及复制路径是否存在
        if(!source_file.exists()){
            throw new IOException("文件复制失败:源文件["+source_file+"]不存在");
        }
        if(!copy_file.isDirectory()){
            throw new IOException("文件复制失败:复制路径["+copyurl+"]错误");
        }
//        File parent = copy_file.getParentFile();
//        //创建复制路径
//        if(!parent.exists()){
//            parent.mkdirs();
//        }
        //创建复制文件
        copyurl = copyurl + "/" + source_file.getName();
        copy_file = new File(copyurl);
        if(!copy_file.exists()){
            copy_file.createNewFile();
        }
        FileInputStream fis = new FileInputStream(source_file);
        FileOutputStream fos = new FileOutputStream(copy_file);
        BufferedInputStream bis = new BufferedInputStream(fis);
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        byte[] kb = new byte[1024];
        int index;
        while((index = bis.read(kb))!=-1){
            bos.write(kb, 0, index);
        }
        bos.close();
        bis.close();
        fos.close();
        fis.close();
        //判断文件是否复制成功
        if(!copy_file.exists()){
            return false;
        }else if(source_file.length()!= copy_file.length()){
            return false;
        }else{
            return true;
        }
    }

    /**
     * 根据文件及其所在路径删除文件
     * @param url 文件及其所在路径,例如::E:\\Workspaces\\MyEclipse 10\\test\\src\\com\\file\\TestFile.java
     * @return
     * @throws IOException
     */
    public static boolean deleteFile(String url) throws IOException{
        url = url.replace("\\", "/");
        File file = new File(url);
        //判断是否为文件
        if(!file.isFile()){
            throw new IOException("文件删除失败:["+file+"]不是文件!");
        }
        //判断文件是否存在
        if(!file.exists()){
            throw new IOException("文件删除失败:["+file+"]文件不存在!");
        }
        //删除文件
        file.delete();
        //返回文件删除是否成功
        if(file.exists()){
            return false;
        }else{
            return true;
        }
    }
}

大致的文件操作流程就是这样,至于细节,入参形式,校验方式,返回类型等问题可以根据需要调整完善。

不喜勿喷,来来来,我们一起上天

时间: 2024-12-21 02:07:17

java实现简单文件操作工具类的相关文章

FileUtils.java 本地 文件操作工具类

package Http; import java.io.File;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException; /** * * 本地文件操作工具类 *保存文本 *保存图片 * Created by lxj-pc on 2017/6/27. */public class FileUtils { public static void saveText(String cont

Java IO(文件操作工具类)

FileOperate实现的功能: 1. 返回文件夹中所有文件列表 2. 读取文本文件内容 3. 新建目录 4. 新建多级目录 5. 新建文件 6. 有编码方式的创建文件 7. 删除文件 8. 删除指定文件夹下所有文件 9. 复制单个文件 10. 复制整个文件夹的内容 11. 移动文件 12. 移动目录 13. 建立一个可以追加的bufferedwriter 14. 得到一个bufferedreader Java代码    package utils; import java.io.Buffer

Code片段 : .properties属性文件操作工具类 & JSON工具类

摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “贵专” — 泥瓦匠 一.java.util.Properties API & 案例 java.util.Properties 是一个属性集合.常见的api有如下: load(InputStream inStream)  从输入流中读取属性 getProperty(String key)  根据key,获取属性值 getOrDefault(Object key, V defaultValue)

文件操作工具类

package utils; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.Outpu

小米开源文件管理器MiCodeFileExplorer-源码研究(4)-文件操作工具类FileOperationHelper

文件操作是非常通用的,注释都写在源代码中了,不多说~需要特别说明的是,任务的异步执行和IOperationProgressListener.拷贝和删除等操作,是比较费时的,采用了异步执行的方式~ Android异步执行,我也是初次了解,在CSDN上找了一篇文章,后续写个单独的例子,单独写1篇介绍.http://blog.csdn.net/xufenghappy6/article/details/7343899异步执行+事件通知 是一种比较流行的模式,比同步等待很多时候要好. 另外,特别需要说明的

Android文件操作工具类(转)

Android文件操作工具类(转) 2014/4/3 18:13:35  孤独的旅行家  博客园 这个工具类包含Android应用开发最基本的几个文件操作方法,也是我第一次发博客与大家分享自己写的东西. 如果有什么补充或修改,欢迎大家提出宝贵的建议. import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;impo

文件操作工具类: 文件/目录的创建、删除、移动、复制、zip压缩与解压.

FileOperationUtils.java package com.xnl.utils; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.Fi

AIR中方便的文件操作工具类

最近做项目用到了air 需要随时读写文件,所以封装了一个工具类,在此记录,方便自己和他人日后使用. FileUtils.as代码: 1 ///////////////////////////////////////////////////////////////////////////////////////// 2 // TXIEJUN Confidential 3 // Copyright 2014. All rights reserved. 4 // 5 // FileUtils.as 6

C#文件操作工具类

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ReadLog.Public { public class FileHelper { string[] format = { "*.jpg", "*.doc", "*.exe", "*.pdf", &qu