一起來了解Java的File類和IO流
1.IO流介紹
IO流可以用到的地方很多,就比如設計模式、下載、傳輸?shù)鹊?。學好IO流,為之后的進一步學習打下基礎,那么,先來說說什么是流?
流是一個抽象的概念,當程序讀取數(shù)據(jù)時,就會開啟一個通往數(shù)據(jù)源的流,這個數(shù)據(jù)源可以是文件、內(nèi)存或者是網(wǎng)絡鏈接;當程序?qū)懭霐?shù)據(jù)時,就會開啟一個通往目的地的流。
java中把不同到的來源或者目的地的數(shù)據(jù)都統(tǒng)一抽象為數(shù)據(jù)流
本質(zhì):就是對數(shù)據(jù)的傳輸,數(shù)據(jù)的一個結合,有方向性
IO流體系結構
流的實現(xiàn)類:
2.Java中流的分
2.1按流向分:
- 輸入流:程序可以從中讀取數(shù)據(jù)的流
- 輸出流:程序能向其中寫入數(shù)據(jù)的流
輸入流:從數(shù)據(jù)源讀取數(shù)據(jù)流到程序(數(shù)據(jù)源:磁盤/U盤/網(wǎng)絡/鍵盤)
輸出流:從程序?qū)懭氲侥康牡兀康牡兀捍疟P/U盤/網(wǎng)絡/顯示器)
2.2按數(shù)據(jù)傳輸單位分:
字節(jié)流:以字節(jié)為單位傳輸數(shù)據(jù)的流
字符流:以字符為單位傳輸數(shù)據(jù)的流
2.3按功能分:
節(jié)點流:用于直接操作目標設備的流
過濾流:對一個已存在的流進行包裝,以提供更強大和靈活的讀寫功能
3.File類介紹
IO流從文件中輸入輸出,至始至終都離不開文件,所以先來說說文件file類。
3.1file類的作用
File類主要作用是對文件和目錄的抽象表示,該類主要是對目錄和文件進行創(chuàng)建、修改、刪除、過濾等造作
3.2file類構造函數(shù)
File(String pathname) //將路徑字符串實例化File實例 File(String parent, String child) //從父路徑名和子路徑名來構建file實例 File(File parent, String child) //根據(jù)父路徑File實例和子路徑名來構建實例
//pathname File img1 = new File("/Users/gongdezhe/Desktop/IO/img1.png"); ? //parent, child File img2 = new File("/Users/gongdezhe/Desktop/IO", "img2.png"); ? ? //File parent, String child File parent = new File("/Users/gongdezhe/Desktop/IO"); File sql = new File(parent, "SQL.txt");
3.3絕對路徑和相對路徑
- 絕對路徑:從盤符開始的路徑,表示一個完成的路徑 (windows:C:\ linux /mac: / )
- 相對路徑:不帶盤符的路徑即是相對路徑 "."表示當前路徑 “..”表示父路徑
分隔符:
windows分隔符:\
mac分割符:/
java中有常量分隔符:File.separator ;*//根據(jù)系統(tǒng)不同自動生成對應分隔符 *String path = "test"+File.separator+"test.txt";
//windows test\test.txt **//linux test/test.txt
3.3File常見的方法
3.3.1創(chuàng)建和刪除
File test = new File("/Users/gongdezhe/Desktop/IO/sql2.txt"); ? try { public boolean createNewFile() throws IOException // 創(chuàng)建新文件 當文件不存在時創(chuàng)建該文件并返回true,當文件存在是則返回false boolean newFile = sql2.createNewFile(); } catch (IOException e) { e.printStackTrace(); } boolean mkdir() // 通過抽象路徑來創(chuàng)建目錄,創(chuàng)建多級目錄時,mkdir創(chuàng)建失敗 test.mkdir(); ? boolean mkdirs() //創(chuàng)建目錄 創(chuàng)建多級目錄 test.mkdirs(); ? //刪除目錄和文件 test.delete();
注意:創(chuàng)建文件時,如果文件不存在,則創(chuàng)建新文件,如果存在,則返回false
創(chuàng)建文件時,文件的父目錄不存在時,創(chuàng)建文件會失敗
3.3.2文件獲取
String getAbsolutePath() //獲取當前文件或目錄的絕對路徑 test.getAbsolutePath(); System.out.println(test.getAbsolutePath()); ? String getPath() //將抽象路徑名轉(zhuǎn)換為路徑字符串 test.getPath(); System.out.println(test.getPath()); ? String getName() //獲取文件或者是目錄的名稱 test.getName(); System.out.println(test.getName()); ? long length() //獲取文件的字節(jié)數(shù) test.length(); System.out.println(test.length()); ? String[] list() //返回目錄中文件和目錄的名稱的字符串數(shù)組 String[] list = test.list(); for (String i:list) { System.out.println(i); } ? File[] listFiles() //返回目錄中文件和目錄的名稱file實例數(shù)組 File[] files = test.listFiles();
3.3.3過濾功能的接口方法
public interface FilenameFilter { //參數(shù)為目錄和指定過濾名稱 //返回結果 true: 可以返回 false:不能返回 boolean accept(File dir, String name); }
之后會持續(xù)更新,包括集合、java基礎知識等,適合剛接觸學習的人。
到此這篇關于一起來了解Java的File類和IO流的文章就介紹到這了,更多相關Java File類和IO流內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!