I/O框架介紹
I/O是計算機輸入/輸出的接口。Java的核心庫java.io提供了全方面的I/O接口,包括:文件系統的操作,文件讀寫,標准設備的輸出等。

File類及使用
① 一個File類的對象,表示了磁盤上的文件或目錄。
② File類提供了與平台無關的方法來對磁盤上的文件或目錄進行操作。
③ File類直接處理文件和文件系統。比如刪除文件,獲取文件長度大小信息。
④ File類沒有提供方法從文件中讀取或向文件中存儲信息。
⑤ 構造方法:
a) File(String directoryPath)
b) File(String directoryPath,String filename)
c) File(File dirObj,String filename)
⑥ File定義了獲取File對象標准屬性的方法。
⑦ 部分File類常用方法:
a) public String getName()
b) public String getParent()
c) public File getParentFile()
d) public String getAbsolutePath()
e) public boolean exists()
f) public File[] listFile()
g) public boolean isDirectory()
h) public boolean isFile()
i) public long length()
j) boolean delete()
k) boolean mkdir()
先在d盤下創建一個名為doc的文件夾,文件夾內創建一個txt文本文件
1 File file = new File("d:\\doc");// windows下使用\\或/,linux下使用/
2 System.out.println(file.getAbsolutePath());// 返回此抽象路徑名的絕對路徑名字符串
3 System.out.println(file.getParent());// 獲取上一級目錄的字符串
4 System.out.println(file.isDirectory());// 判斷路徑名表示的文件是否是一個目錄
5 System.out.println(file.isFile());// 判斷路徑名表示的文件是否是一個標准文件
6 System.out.println(file.exists());// 判斷抽象路徑名表示的文件或目錄是否存在
7 System.out.println(file.length());// 返回由此抽象路徑名表示的文件的長度
8 System.out.println(file.delete());// 刪除此抽象路徑名表示的文件或目錄--若目錄下存在文件則不可刪除
輸出結果
d:\doc
d:\
true
false
true
0
false
創建目錄及目錄下創建文件
1 File myFile = new File("d:\\zhangsan"); 2 System.out.println(myFile.mkdir());// 創建不存在的目錄
3
4 File myFile2 = new File("d:\\zhangsan\\ceshi.txt"); 5 try { 6 System.out.println(myFile2.createNewFile());// 創建指定目錄下不存在的文件
7 } catch (IOException e) { 8 e.printStackTrace(); 9 }
輸出結果
true
true
在zhangsan目錄下的ceshi.txt中隨意輸入一些字符,再添加一張圖片
獲取目錄下所有的文件
1 String[] files = myFile.list();// 獲取目錄下所有的文件
2 for (String f : files) { 3 System.out.println(f); 4 }
輸出結果
ceshi.txt
tu.png
返回所有以txt為后綴名的文件
1 String[] files2 = myFile.list(new FilenameFilter() { 2
3 @Override 4 public boolean accept(File dir, String name) { 5 return name.endsWith(".txt");//返回所有以txt為后綴名的文件
6 } 7 }); 8 for (String f : files2) { 9 System.out.println(f); 10 }
輸出結果
ceshi.txt
獲取目錄中所有的文件,名稱及大小
1 File[] files3=myFile.listFiles(); 2 for(File f:files3){ 3 System.out.println(f.getName()+"--"+f.length()); 4 }
輸出結果
ceshi.txt--140
tu.png--73425
返回目錄下所有以txt為后綴名的文件,名稱及大小
方法一
1 File[] files4=myFile.listFiles(new FilenameFilter() { 2
3 @Override 4 public boolean accept(File dir, String name) { 5 return name.endsWith(".txt");//返回目錄下所有以txt為后綴名的文件
6 } 7 }); 8 for(File f:files4){ 9 System.out.println(f.getName()+"--"+f.length()); 10 }
輸出結果
ceshi.txt--140
方法二
1 File[] files5=myFile.listFiles(new FileFilter() { 2
3 @Override 4 public boolean accept(File pathname) { 5 return pathname.getName().endsWith(".txt"); 6 } 7 }); 8 for(File f:files5){ 9 System.out.println(f.getName()+"--"+f.length()); 10 }
輸出結果
ceshi.txt--140
