java IO之FILE

 java IO之字節流與字符流

JAVA IO中的所有操作類都放在java .io包中。

主要的類和接口四:FileInputStreamOutputStreamReaderWriterSerialzable接口

File類在整個java.io包中是一個獨立的類,此類主要功能是完成與平臺無關文件操作。

創建文件public boolean createNewFile() throws IOException

D盤根目錄創建singsong.txt文件

  1. import java.io.File; 
  2. import java.io.IOException; 
  3. public class FileDome { 
  4.     public static void main(String[] args) { 
  5.         File file = new File("D:\\singsong.txt");// 找到File類的實例 
  6.         try { 
  7.             file.createNewFile();// 創建文件 
  8.         } catch (IOException e) { 
  9.             e.printStackTrace(); 
  10.         } 
  11.     } 

刪除文件:public boolean delete()

在刪除文件時,要判斷文件是否存在:public boolean exists()

  1. public class FileDome { 
  2.     public static void main(String[] args) { 
  3.         File file = new File("D:\\singsong.txt");// 找到File類的實例 
  4.         if (file.exists()) { 
  5.             file.delete(); 
  6.             System.out.println("成功刪除文件"); 
  7.         } else { 
  8.             System.out.println("沒有此文件"); 
  9.         } 
  10.     } 

在各個操作系統中,文件的分隔符是不一樣的:

Windows\

Linux:/

Java本身屬於跨平臺的語言,那麼應該可以適應各個不同的平臺要求。那麼爲了解決可以自動適應不同系統的分隔符要求,所以在File類中提供了以下幾個常量:

路徑分隔符:public static final String pathSeparator,“;”

分隔符:public static final String separator,“/”或者“\

所以,對於實際的開發來說,必須使用這樣的常量進行聲明。

 

判斷路徑是文件還是文件夾

在程序中可以使用如下的方法進行判斷:

判斷是否文件夾:public boolean isDirectory()

判斷是否文件:public boolean isFile()

  1. public class IsFileDome { 
  2.     public static void main(String[] args) { 
  3.     File file1 =new File("D:"+File.separator+"singsong.txt");    
  4.     File file2 =new File("D:"+File.separator+"javaWEB");     
  5.     System.out.println("singsong.txt = "+file1.isFile());//判斷是否文件 
  6.     System.out.println("javaWEB = "+file2.isDirectory());//判斷是否目錄    
  7.     } 

列出目錄中的內容

File類中提供了以下的兩個方法進行目錄的列表操作:

1public String[] list() 2public File[] listFiles()

  1. 1: 
  2. public class ListFileDome { 
  3.     public static void main(String[] args) { 
  4.         File file = new File("D:" + File.separator + "javaTest"); 
  5.         String path[] =file.list();//列出全部的內容,以字符串的形式 
  6.         for (int i = 0; i < path.length; i++) { 
  7.             System.out.println(path[i]); 
  8.         } 
  9.     } 

運行結果:

  1. singsong.txt 
  2. WEB 
  1. 2: 
  2. import java.io.File; 
  3. public class ListFileDome { 
  4.     public static void main(String[] args) { 
  5.         File file = new File("D:" + File.separator + "javaTest"); 
  6.             File path[] = file.listFiles();// 列出全部的子文件或文件夾 
  7.         for (int i = 0; i < path.length; i++) { 
  8.             System.out.println(path[i]); 
  9.         } 
  10.     } 

運行結果:

  1. D:\javaTest\singsong.txt 
  2. D:\javaTest\WEB 

從運行結果中可以知道兩個操作同樣屬於列表的操作,但是後者卻可以列出完整的路徑,實際上此時,如果想要操作文件,則肯定使用後者最爲方便,因爲可以找到File類的對象,實際上就找到了完整的路徑。

  1. import java.io.File; 
  2.  
  3. public class ListFileDome { 
  4.     public static void main(String[] args) { 
  5.         File file = new File("D:" + File.separator + "javaTest"); 
  6.         File path[] = file.listFiles();// 列出全部的子文件或文件夾 
  7.         for (int i = 0; i < path.length; i++) { 
  8.             System.out.print(path[i].getParent()+"--->"); 
  9.             System.out.println(path[i]); 
  10.         } 
  11.     } 

運行結果:

  1. D:\javaTest--->D:\javaTest\singsong.txt 
  2. D:\javaTest--->D:\javaTest\WEB 

創建目錄及文件

  1. import java.io.File; 
  2. import java.io.IOException; 
  3. public class MakeDirDome { 
  4.     public static void main(String[] args) { 
  5.         File file = new File("D:" + File.separator + "javaTestdir" 
  6.                 + File.separator + "singsong" + File.separator + "test.txt"); 
  7.         file.getParentFile().mkdir();// 創建路徑 
  8.         try { 
  9.             file.createNewFile(); 
  10.         } catch (IOException e) { 
  11.             e.printStackTrace(); 
  12.         } 
  13.     } 

列出一個目錄下所有文件的路徑,包括個子文件夾中的文件也都要列出

  1. import java.io.File; 
  2. public class AllListFileDome { 
  3.     public static void main(String[] args) { 
  4.         File file = new File("D:" + File.separator); 
  5.         list(file); 
  6.     } 
  7.  
  8.     public static void list(File file) { 
  9.         if (file.isDirectory()) { 
  10.             File lists[] = file.listFiles(); 
  11.             if (lists != null) { 
  12.                 for (int i = 0; i < lists.length; i++) { 
  13.                     list(lists[i]); 
  14.                 } 
  15.             } 
  16.         } 
  17.         System.out.println(file); 
  18.     } 

只能依靠遞歸完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章