1. 程式人生 > >Java操作文件常用的9種方法

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

用例 msg ack exist exce text blog 新建 tro

一、

//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種方法