国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java基礎之IO流

2019-11-14 21:16:41
字體:
來源:轉載
供稿:網友
java基礎之IO流

IO流用來處理設備間數據傳輸,java對數據的操作是通過流的方式,而這些操作流的對象被封裝在IO包中。流可以分為字符流和字節流。字符流可以設置編碼方式,這就使得處理文本更加方便。

IO常用基類

字節流抽象基類InputStream,OutputStream。字符流抽象基類Reader,Writer。

字符流體系抽象基類Writer

共性方法:write();flush();close();append()

子類FileWriter

用于寫入文件。該類對象一被初始化就要指定被操作的文件。write方法將數據寫入流,flush方法刷新流,close刷新并關閉流。

抽象類基類 Reader

共性方法:read();skip();reset();ready()

子類FileReader

用于讀取文件。對象初始化時要指定被讀取的文件。read()方法將數據讀入流。

IO異常處理IOException

流對象fw要放在try塊外面聲明,在內部初始化,以便在finally中能訪問到;fw只有不為null時才能調用close方法,所以需要有判斷。

字符流的緩沖區

字符流的緩沖區提高了IO的效率,需要結合流才能使用,在流的基礎上對流的功能進行了增強。對應的類為BufferedReader和BufferedWriter。

BufferedWriter

將文本寫入字符輸出流,緩沖各個字符,從而提供單字符,字符數組,字符串的高效寫入。所以,在創建緩沖區之前要現有流對象,只要把流對象加入構造函數,再調用緩沖區的寫入方法即可。

BufferedReader

從字符輸入流中讀取文本,緩沖各個字符,從而實現字符,數組,行的高效讀出。

子類LineNumberReader

跟蹤行號的緩沖字符輸出流,通過setLineNumber和getlLineNumber方法可以設置和獲取當前行號。

字節流體系抽象基類OutputStream

共性方法:write();flush();close();

子類FileOutputStream

用于寫入文件。該類對象一被初始化就要指定被操作的文件。write方法將數據寫入流,flush方法刷新流,close刷新并關閉流

抽象類基類 InputStream

共性方法:read();skip();reset();ready()

子類FileInputStream

用于讀取文件。對象初始化時要指定被讀取的文件。read()方法將數據讀入流,available()返回可以讀到的字節數。

字節流的緩沖區

對應的類為BufferedOutputStream和BufferedInputStream

BufferedOutputStream

該類實現緩沖的輸出流,通過設置這種輸出流,應用程序就可以將各個字節寫入底層輸出流中,不必針對每次字節寫入調用底層系統。

BufferedInputStream

同字符流緩沖區相同。

讀取轉換流

InputStreamReader類將字節流轉換為字符流。它指定字符集來讀取字節并解碼成字符。為了達到高效率,可以考慮在BufferedReader內包裝InputStreamReader。

寫入轉換流

OutputStreamWriter類將字符流轉換為字節流。可以指定字符集來編碼成字節。為了達到高效率,可以考慮在BufferedWriter內包裝OutputStreamWriter。

輸入流操作時應明確源----橋梁(符節轉換)----緩沖,輸出流操作應明確目的------橋梁(符節轉換) ------緩沖。

Flie類

用來將文件或文件夾封裝成對象,方便對文件和文件夾操作,也可以作為參數傳遞給流的構造函數。

常用方法:

  • 創建
    • createNewFile();創建新文件,如存在則返回false
    • createTempFile(PRefix,suffix)靜態方法,根據指定前綴后綴創建臨時文件
    • mkdir();mkdirs();創建目錄
  • 刪除
    • delete();刪除文件
    • deleteOnExit();JVM終止時請求刪除此文件或目錄。
  • 判斷

canExcute();canRead();canWrite();exist();isDirectory();isFile()

  • 獲取信息
    • getname();getPath();getParent();getAbsolutePath();length()
    • list(dir);獲取目錄下文件名稱數組
    • listFiles(dir);獲取文件對象數組

properties類

該類是集合中與IO相結合的集合容器,是hashtable的子類,即具備map集合的特點,且鍵值對都是字符串。該類對象可以用于鍵值對形式的配置文件。

  • setProperties(str,str);getProperties(str)讀取設置屬性
  • load()加載字節流或者字符流1.6版本后
  • Set<string> stringPropertyNames()返回屬性列表中的鍵集合

打印流字節輸出流PrintStream類

作為outputStream的子類,為其他輸出流添加了功能,使它們能打印各種數值表示形式。將各種數據都原樣打印。可以直接操作文件,它的構造函數接受file對象,文件路徑,字節輸出流。

字符輸出流PrintWriter類

它的構造函數可以接受file對象,文件路徑,字節輸出流outputstream,字符輸出流Writer

SequenceInputStream

將多個輸入流合并成一個輸入流。

對象的序列化

實現堆內存中數據對象的存取,需要用到ObjectOutputStream和ObjectInputStream類來實現,也稱為對象的持久化或對象的序列化。

類通過實現接口serializable來啟用它的序列化功能。類中的靜態成員變量是不能被序列化的,因為靜態成員變量并不在堆內存中存儲,而是存儲在內存方法區中。非靜態成員如果加上transient關鍵字修飾,則也可以不被序列化。

管道流

通過管道流輸入和輸出可以直接連接,通過結合線程使用,需要用到PipledOutputStream和PipledInputStream類來實現.

管道輸入流應該連接到管道輸出流;管道輸入流提供要寫入管道輸出流的所有輸入字節。通常情況下,數據由某個線程從PipledInputStream對象讀取,并由其他線程寫入到對應PipledOutputStream對象中去。

隨機訪問文件

RandomaccessFile類的對象能對文件進行隨機的讀寫操作,內部封裝了byte數組,通過指針對數組操作。通過getFilePointer()獲取指針位置,通過seek改變指針位置。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 胶州市| 新化县| 峨山| 兴和县| 伊川县| 蛟河市| 商丘市| 龙游县| 探索| 于都县| 克什克腾旗| 威海市| 揭西县| 阿图什市| 鄄城县| 白山市| 凉山| 田东县| 菏泽市| 云林县| 阳山县| 澄江县| 成安县| 滕州市| 化州市| 房产| 布尔津县| 任丘市| 徐闻县| 赣榆县| 卓资县| 青龙| 钦州市| 元阳县| 香格里拉县| 彩票| 天祝| 库尔勒市| 河间市| 乌拉特前旗| 汝阳县|