Java操作文件常用的9種方法
阿新 • • 發佈:2018-11-07
用例 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種方法