码迷,mamicode.com
首页 > 编程语言 > 详细

Java操作文件常用的9种方法

时间:2018-11-06 23:34:08      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:mkdir   return   图片   cto   content   lsp   except   leo   方法   

一、

//1、创建文件夹

public static boolean createFolder(String pathName){
    try {
        File folderPath = new File(pathName);
        if(!folderPath.exists()){
            folderPath.mkdir();
        }
        return true;
    } catch (Exception e) {
        e.printStackTrace();
        System.err.println("新建文件夹时,出错!");
        return false;
    }
}

//2、创建文件

public static boolean createFlie(String filePath){
    try {
        File file = new File(filePath);
        if(!file.exists()){
            file.createNewFile();
        }
        FileWriter fw = new FileWriter(file);
        PrintWriter pw = new PrintWriter(fw);
        pw.println(filePath);
        fw.close();
        pw.close();
        return true;
    } catch (IOException e) {
        e.printStackTrace();
        System.err.println("创建文件时,出错!");
        return false;
    }
}

//3、删除空文件夹

public static boolean deleteFolder(String floderPath){
    try {
        File delFloder = new File(floderPath);
        delFloder.delete();
        return true;
    } catch (Exception e) {
        e.printStackTrace();
        System.err.println("删除文件夹时,出错!");
        return false;
    }

}

//4、删除指定文件

public static boolean deleteFile(String filePath){
    try {
        File delFlie = new File(filePath);
        delFlie.delete();
        return true;
    } catch (Exception e) {
        e.printStackTrace();
        System.err.println("删除文件时,出错!");
        return false;
    }
}

//5、删除某文件夹下的所有空文件夹

public static boolean deleteFloderHasContent(String floderPath){
    try {
        File delFloderC = new File(floderPath);
        File[] files = delFloderC.listFiles();
        System.err.println(delFloderC.length());
        for (int i = 0; i < files.length; i++) {
            if(files[i].isDirectory()){
                files[i].delete();
            }
        }
        return true;
    } catch (Exception e) {
        e.printStackTrace();
        System.err.println("删除有内容的文件夹时,出错!");
        return false;
    }
}

//6、记事本写入文件

public static boolean readFile(String sourcePath, String content){
    try {
        File file = new File(sourcePath);
        FileWriter fw = new FileWriter(file);
        fw.write(content);
        fw.flush();
        fw.close();
        return true;
    } catch (Exception e) {
        e.printStackTrace();
        System.err.println("写入文件时,出错!");
        return false;
    }
}

//7、读取文件属性

public static void readFileMsg(String sourcePath){
    File file = new File(sourcePath);
    if(file.exists()){
        System.err.println("文件名称" + file.getName());
        System.err.println(file.isFile()?"文件":"不是文件");
        System.err.println(file.isDirectory()?"文件夹":"非文件夹");
        System.err.println(file.canRead()?"可读取":"不可读取");
        System.err.println(file.canWrite()?"是隐藏文件":"不是隐藏文件");
        System.err.println("最终修改时间"+new Date(file.lastModified()));
        System.err.println(file.canExecute()?"是执行文件":"不是执行文件");
        System.err.println("文件大小"+file.getTotalSpace());
    }
}

//8、复制文件夹

public static boolean copyFloder(String sourcePath, String totalPath){
    File file = new File(sourcePath);
    String[] fileLst = file.list();
    File tarFile = new File(totalPath);
    if(!tarFile.exists()){//创建,目标复制文件夹
        tarFile.mkdir();
    }
    for (int i = 0; i < fileLst.length; i++) {
        if((new File(sourcePath + file.separator + fileLst[i])).isDirectory()){//若文件夹中包含文件夹,则递归调用
            copyFloder(sourcePath + file.separator + fileLst[i], totalPath + file.separator + fileLst[i]);
        }
        if((new File(sourcePath + file.separator + fileLst[i])).isFile()){//文件夹内的文件
            System.err.println(sourcePath + file.separator + fileLst[i]);
            copyFile(sourcePath + file.separator + fileLst[i], totalPath + file.separator + fileLst[i]);
        }
    }
    return false;
}

//9、复制文件

public static boolean copyFile(String sourcePath, String targetPath){
    try {
        File file = new File(sourcePath);
        int byteread = 0;
        if(file.exists()){
            FileInputStream fi = new FileInputStream(file);//读取源文件
            FileOutputStream fo = new FileOutputStream(new File(targetPath));//写入目标文件
            byte[] buffer = new byte[1024];
            while ((byteread = fi.read(buffer)) != -1) {
                fo.write(buffer, 0, byteread);
            }
            fi.close();
            fo.close();
        }
        return true;
    } catch (Exception e) {
        e.printStackTrace();
        System.err.println("文件复制时,出错!");
        return false;
    }
}

二、测试文件夹的复制

我喜欢音乐,因此就拿这个文件夹做测试用例吧

String floderPath = "D:\\red_ant_file\\20181106\\KGMusic";
        String totalPath = "D:\\red_ant_file\\20181106\\KGMusicCopy";
        AllServiceIsHere.copyFloder(floderPath, totalPath);

技术分享图片

技术分享图片

运行后

技术分享图片

技术分享图片

技术分享图片

完工!

Java操作文件常用的9种方法

标签:mkdir   return   图片   cto   content   lsp   except   leo   方法   

原文地址:http://blog.51cto.com/13479739/2313637

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!