java文件操作

/*

* 我們要想實現IO的操作,就必須知道硬盤上文件的表現形式。
* 而Java就提供了一個類File供我們使用。
*
* File:文件和目錄(文件夾)路徑名的抽象表示形式
* 構造方法:
* File(String pathname):根據一個路徑得到File對象
* File(String parent, String child):根據一個目錄和一個子文件/目錄得到File對象
* File(File parent, String child):根據一個父File對象和一個子文件/目錄得到File對象
*/
public class FileDemo {
public static void main(String[] args) {
// File(String pathname):根據一個路徑得到File對象
// 把e:\\demo\\a.txt封裝成一個File對象
File file = new File("E:\\demo\\a.txt");
 
// File(String parent, String child):根據一個目錄和一個子文件/目錄得到File對象
File file2 = new File("E:\\demo", "a.txt");
 
// File(File parent, String child):根據一個父File對象和一個子文件/目錄得到File對象
File file3 = new File("e:\\demo");
File file4 = new File(file3, "a.txt");
 
// 以上三種方式其實效果一樣
}
}
===========================================================
 
import java.io.File;
import java.io.IOException;
 
/*
*創建功能:
*public boolean createNewFile():創建文件 如果存在這樣的文件,就不創建了
*public boolean mkdir():創建文件夾 如果存在這樣的文件夾,就不創建了
*public boolean mkdirs():創建文件夾,如果父文件夾不存在,會幫你創建出來
*
*騎白馬的不一定是王子,可能是班長。
*注意:你到底要創建文件還是文件夾,你最清楚,方法不要調錯了。
*/
public class FileDemo {
public static void main(String[] args) throws IOException {
// 需求:我要在e盤目錄下創建一個文件夾demo
File file = new File("e:\\demo");
System.out.println("mkdir:" + file.mkdir());
 
// 需求:我要在e盤目錄demo下創建一個文件a.txt
File file2 = new File("e:\\demo\\a.txt");
System.out.println("createNewFile:" + file2.createNewFile());
 
// 需求:我要在e盤目錄test下創建一個文件b.txt
// Exception in thread "main" java.io.IOException: 系統找不到指定的路徑。
// 注意:要想在某個目錄下創建內容,該目錄首先必須存在。
// File file3 = new File("e:\\test\\b.txt");
// System.out.println("createNewFile:" + file3.createNewFile());
 
// 需求:我要在e盤目錄test下創建aaa目錄
// File file4 = new File("e:\\test\\aaa");
// System.out.println("mkdir:" + file4.mkdir());
 
// File file5 = new File("e:\\test");
// File file6 = new File("e:\\test\\aaa");
// System.out.println("mkdir:" + file5.mkdir());
// System.out.println("mkdir:" + file6.mkdir());
 
// 其實我們有更簡單的方法
File file7 = new File("e:\\aaa\\bbb\\ccc\\ddd");
System.out.println("mkdirs:" + file7.mkdirs());
 
// 看下面的這個東西:
File file8 = new File("e:\\liuyi\\a.txt");
System.out.println("mkdirs:" + file8.mkdirs());
}
}
============================================================
 
import java.io.File;
import java.io.IOException;
 
/*
* 刪除功能:public boolean delete()
*
* 注意:
* A:如果你創建文件或者文件夾忘了寫盤符路徑,那麼,默認在項目路徑下。
* B:Java中的刪除不走回收站。
* C:要刪除一個文件夾,請注意該文件夾內不能包含文件或者文件夾
*/
public class FileDemo {
public static void main(String[] args) throws IOException {
// 創建文件
// File file = new File("e:\\a.txt");
// System.out.println("createNewFile:" + file.createNewFile());
 
// 我不小心寫成這個樣子了
File file = new File("a.txt");
System.out.println("createNewFile:" + file.createNewFile());
 
// 繼續玩幾個
File file2 = new File("aaa\\bbb\\ccc");
System.out.println("mkdirs:" + file2.mkdirs());
 
// 刪除功能:我要刪除a.txt這個文件
File file3 = new File("a.txt");
System.out.println("delete:" + file3.delete());
 
// 刪除功能:我要刪除ccc這個文件夾
File file4 = new File("aaa\\bbb\\ccc");
System.out.println("delete:" + file4.delete());
 
// 刪除功能:我要刪除aaa文件夾
// File file5 = new File("aaa");
// System.out.println("delete:" + file5.delete());
 
File file6 = new File("aaa\\bbb");
File file7 = new File("aaa");
System.out.println("delete:" + file6.delete());
System.out.println("delete:" + file7.delete());
}
}
===========================================================================
 
import java.io.File;
 
/*
* 重命名功能:public boolean renameTo(File dest)
* 如果路徑名相同,就是改名。
* 如果路徑名不同,就是改名並剪切。
*
* 路徑以盤符開始:絕對路徑 c:\\a.txt
* 路徑不以盤符開始:相對路徑 a.txt
*/
public class FileDemo {
public static void main(String[] args) {
// 創建一個文件對象
// File file = new File("林青霞.jpg");
// // 需求:我要修改這個文件的名稱爲"東方不敗.jpg"
// File newFile = new File("東方不敗.jpg");
// System.out.println("renameTo:" + file.renameTo(newFile));
 
File file2 = new File("東方不敗.jpg");
File newFile2 = new File("e:\\林青霞.jpg");
System.out.println("renameTo:" + file2.renameTo(newFile2));
}
}
==========================================================================
 
import java.io.File;
 
/*
* 判斷功能:
* public boolean isDirectory():判斷是否是目錄
* public boolean isFile():判斷是否是文件
* public boolean exists():判斷是否存在
* public boolean canRead():判斷是否可讀
* public boolean canWrite():判斷是否可寫
* public boolean isHidden():判斷是否隱藏
*/
public class FileDemo {
public static void main(String[] args) {
// 創建文件對象
File file = new File("a.txt");
 
System.out.println("isDirectory:" + file.isDirectory());// false
System.out.println("isFile:" + file.isFile());// true
System.out.println("exists:" + file.exists());// true
System.out.println("canRead:" + file.canRead());// true
System.out.println("canWrite:" + file.canWrite());// true
System.out.println("isHidden:" + file.isHidden());// false
}
}
 
========================================================

 
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
 
/*
* 獲取功能:
* public String getAbsolutePath():獲取絕對路徑
* public String getPath():獲取相對路徑
* public String getName():獲取名稱
* public long length():獲取長度。字節數
* public long lastModified():獲取最後一次的修改時間,毫秒值
*/
public class FileDemo {
public static void main(String[] args) {
// 創建文件對象
File file = new File("demo\\test.txt");
 
System.out.println("getAbsolutePath:" + file.getAbsolutePath());
System.out.println("getPath:" + file.getPath());
System.out.println("getName:" + file.getName());
System.out.println("length:" + file.length());
System.out.println("lastModified:" + file.lastModified());
 
// 1416471971031
Date d = new Date(1416471971031L);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s = sdf.format(d);
System.out.println(s);
}
}
===========================================================================
 
import java.io.File;
 
/*
* 獲取功能:
* public String[] list():獲取指定目錄下的所有文件或者文件夾的名稱數組
* public File[] listFiles():獲取指定目錄下的所有文件或者文件夾的File數組
*/
public class FileDemo {
public static void main(String[] args) {
// 指定一個目錄
File file = new File("e:\\");
 
// public String[] list():獲取指定目錄下的所有文件或者文件夾的名稱數組
String[] strArray = file.list();
for (String s : strArray) {
System.out.println(s);
}
System.out.println("------------");
 
// public File[] listFiles():獲取指定目錄下的所有文件或者文件夾的File數組
File[] fileArray = file.listFiles();
for (File f : fileArray) {
System.out.println(f.getName());
}
}
}
test
新建文件夾
新建文本文檔.txt
file:1470298076394
E:\demo\test
E:\demo\新建文件夾
E:\demo\新建文本文檔.txt
 
$RECYCLE.BIN
animal.jar
big data
big data.txt
job English
software
System Volume Information
tu.jpg
VOA
xunleiyingying
大數據學習筆記
訊傑工作
------------
$RECYCLE.BIN
animal.jar
big data
big data.txt
job English
software
System Volume Information
tu.jpg
VOA
xunleiyingying
大數據學習筆記
訊傑工作
 
====================================
package cn.itcast_08;
 
import java.io.File;
 
/*
* 判斷E盤目錄下是否有後綴名爲.jpg的文件,如果有,就輸出此文件名稱
*
* 分析:
* A:封裝e判斷目錄
* B:獲取該目錄下所有文件或者文件夾的File數組
* C:遍歷該File數組,得到每一個File對象,然後判斷
* D:是否是文件
* 是:繼續判斷是否以.jpg結尾
* 是:就輸出該文件名稱
* 否:不搭理它
* 否:不搭理它
*/
public class FileDemo {
public static void main(String[] args) {
// 封裝e判斷目錄
File file = new File("e:\\");
 
// 獲取該目錄下所有文件或者文件夾的File數組
File[] fileArray = file.listFiles();
 
// 遍歷該File數組,得到每一個File對象,然後判斷
for (File f : fileArray) {
// 是否是文件
if (f.isFile()) {
// 繼續判斷是否以.jpg結尾
if (f.getName().endsWith(".jpg")) {
// 就輸出該文件名稱
System.out.println(f.getName());
}
}
}
}
}
==========================================================

 
import java.io.File;
import java.io.FilenameFilter;
 
/*
* 判斷E盤目錄下是否有後綴名爲.jpg的文件,如果有,就輸出此文件名稱
* A:先獲取所有的,然後遍歷的時候,依次判斷,如果滿足條件就輸出。
* B:獲取的時候就已經是滿足條件的了,然後輸出即可。
*
* 要想實現這個效果,就必須學習一個接口:文件名稱過濾器
* public String[] list(FilenameFilter filter)
* public File[] listFiles(FilenameFilter filter)
*/
public class FileDemo2 {
public static void main(String[] args) {
// 封裝e判斷目錄
File file = new File("e:\\");
 
// 獲取該目錄下所有文件或者文件夾的String數組
// public String[] list(FilenameFilter filter)
String[] strArray = file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
// return false;
// return true;
// 通過這個測試,我們就知道了,到底把這個文件或者文件夾的名稱加不加到數組中,取決於這裏的返回值是true還是false
// 所以,這個的true或者false應該是我們通過某種判斷得到的
// System.out.println(dir + "---" + name);
// File file = new File(dir, name);
// // System.out.println(file);
// boolean flag = file.isFile();
// boolean flag2 = name.endsWith(".jpg");
// return flag && flag2;
return new File(dir, name).isFile() && name.endsWith(".jpg");
}
});
 
// 遍歷
for (String s : strArray) {
System.out.println(s);
}
}
}
 
=======================================================
 
import java.io.File;
 
/*
* 需求:把E:\評書\三國演義下面的視頻名稱修改爲
* 00?_介紹.avi
*
* 思路:
* A:封裝目錄
* B:獲取該目錄下所有的文件的File數組
* C:遍歷該File數組,得到每一個File對象
* D:拼接一個新的名稱,然後重命名即可。
*/
public class FileDemo {
public static void main(String[] args) {
// 封裝目錄
File srcFolder = new File("E:\\評書\\三國演義");
 
// 獲取該目錄下所有的文件的File數組
File[] fileArray = srcFolder.listFiles();
 
// 遍歷該File數組,得到每一個File對象
for (File file : fileArray) {
// System.out.println(file);
// E:\評書\三國演義\三國演義_001_[評書網-今天很高興,明天就IO了]_桃園三結義.avi
// 改後:E:\評書\三國演義\001_桃園三結義.avi
String name = file.getName(); // 三國演義_001_[評書網-今天很高興,明天就IO了]_桃園三結義.avi
 
int index = name.indexOf("_");
String numberString = name.substring(index + 1, index + 4);
// System.out.println(numberString);
 
// int startIndex = name.lastIndexOf('_');
// int endIndex = name.lastIndexOf('.');
// String nameString = name.substring(startIndex + 1, endIndex);
// System.out.println(nameString);
int endIndex = name.lastIndexOf('_');
String nameString = name.substring(endIndex);
 
String newName = numberString.concat(nameString); // 001_桃園三結義.avi
// System.out.println(newName);
 
File newFile = new File(srcFolder, newName); // E:\\評書\\三國演義\\001_桃園三結義.avi
 
// 重命名即可
file.renameTo(newFile);
}
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章