I/O流——File類及使用


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM