IO流(1) io, filter



IO流:

IO流用來處理設備之間的數據傳輸
Java對數據的操作是通過流(系統資源)的方式
Java用於操作流的對象都在java.io包中

IO:用於處理設備上的數據技術。設備:內存,硬盤,光盤

流:系統資源,windows系統本身就可以操作設備,各種語言只是使用系統平臺上的這個資源
    並對外提供了各種語言自己操作的功能,這些功能最終調用的是系統資源
   使用完資源一定要 釋放。


*********File***************
將一個具體的路徑封裝成了File對象。可以封裝存在的文件或目錄,
也可以封裝不存在文件或目錄。

File file= new File("c:\\1.txt");
File file= = new File("c:\\","1.txt");

File f = new File("c:"+File.separator+"abc"+File.separator+"1.txt");

**創建文件可以沒有擴展名

創建文件夾  boolean b =file.mkdir();
創建多級目錄:file.mkdirs();

**獲取文件夾下的所有文件:
File dir = new File("c:\\");
String[] names = dir.list(); // 文件包括隱藏文件,只獲取名稱

File[] files =dir.listFiles(); // 列舉文件對象
for(File f:files){
    System.out.println(f.getName()+"..."+f.length());
}

***文件過濾器***********
獲取指定目錄下的指定類型文件:
list方法:
File dir= new File("c:\\");
FilenameFilter filter= new FilterBySuffix(".class");// 後綴名是class
filter = new FilterByContain("Demo"); //名稱有Demo的文件
String[] files=dir.list(filter);

listFiles方法:
               FileFilter filter =  new FilterBysuffix();
  File[] files = dir.listFiles(filter);

*********遞歸:函數自身調用自身。函數內部又使用到了該函數功能
 什麼時候使用?
  功能被重複使用,但是每次該功能使用參與運算的數據不同時,可以考慮遞歸方式解決。

 使用時,一定要定義條件 。
注意遞歸次數過多,會出現棧內存溢出。

***刪除一個帶內容的文件夾,必須從裏往外刪
public static void deleteDir(File dir){
File dir = new File("E:\\test");

File[] files= dir.listFiles();
for(File file:files){
      if(file.isDirectory())
           { deleteDir(file);
        }else{
   System.out.println(file+":"+file.delete());
 }
  }
  System.out.println(dir+":"+dir.delete());
}

io流:
** 流按操作數據分爲兩種:字節流與字符流
流按流向分爲:輸入流(讀),輸出流(寫)

字節流的抽象基類:
 InputStream , OutStream

***** FileOutputStream ************
1,創建字節輸出流對象,用於操作文件,在對象初始化時,必須明確數據存儲的目的地
  輸出流所關聯的目的地,如果不存在,會自動創建,如果存在,則覆蓋。

FileOutputStream fos = new FileOutputStream("tempfile\\fos.txt");

發佈了56 篇原創文章 · 獲贊 14 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章