日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

javaIo

發(fā)布時間:2024/8/26 综合教程 37 生活家
生活随笔 收集整理的這篇文章主要介紹了 javaIo 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

直接在源代碼中f4 或者 Ctrl + t 查看繼承結(jié)構(gòu)

1. JavaIO類。

文件:
File、RandomAccessFile
流:
字節(jié)流:InputStream、outputStream ;字符流:Reader、 Writer;(如下圖

java IO類

2. 總的類

字節(jié)流和字符流:

字節(jié)流和字符流

裝飾器:給流加上特性,比如緩存什么的
適配器:將字節(jié)流轉(zhuǎn)換為字符流

3. 詳解


輸入裝飾流
FilterInputStream是裝飾流;是BufferedInputStream和DataInputStream的超類。
DataInputStream 是數(shù)據(jù)輸入流。它是用來裝飾其它輸入流,它“允許應(yīng)用程序以與機(jī)器無關(guān)方式從底層輸入流中讀取基本 Java 數(shù)據(jù)類型”。
BufferedInputStream 是緩沖輸入流。它的作用是為另一個輸入流添加緩沖功能。


輸出裝飾流

FilterOutputStream 是過濾輸出流。它是DataOutputStream,BufferedOutputStream和PrintStream的超類。
DataOutputStream 是數(shù)據(jù)輸出流。它是用來裝飾其它輸出流,它“允許應(yīng)用程序以與機(jī)器無關(guān)方式向底層寫入基本 Java 數(shù)據(jù)類型”。
BufferedOutputStream 是緩沖輸出流。它的作用是為另一個輸出流添加緩沖功能。
PrintStream (裝飾流)是打印輸出流。它是用來裝飾其它輸出流,能為其他輸出流添加了功能,使它們能夠方便地打印各種數(shù)據(jù)值表示形式。

字符流


輸入適配流
字節(jié)轉(zhuǎn)字符

BufferedReader 是字符緩沖輸入流。它的作用是為另一個輸入流添加緩沖功能。
InputStreamReader 是字節(jié)轉(zhuǎn)字符的輸入流。它是字節(jié)流通向字符流的橋梁:它使用指定的 charset 讀取字節(jié)并將其解碼為字符。


輸出適配流

BufferedWriter 是字符緩沖輸出流。它的作用是為另一個輸出流添加緩沖功能。
OutputStreamWriter 是字節(jié)轉(zhuǎn)字符的輸出流。它是字節(jié)流通向字符流的橋梁:它使用指定的 charset 將字節(jié)轉(zhuǎn)換為字符并寫入。
FileWriter 是字符類型的文件輸出流。它通常用于對文件進(jìn)行讀取操作。
PrintWriter (裝飾流)是字符類型的打印輸出流。它是用來裝飾其它輸出流,能為其他輸出流添加了功能,使它們能夠方便地打印各種數(shù)據(jù)值表示形式。

4.對應(yīng)關(guān)系

字節(jié)流(輸入和輸出對應(yīng)的關(guān)系)


字節(jié)流輸入和輸出對應(yīng)關(guān)系

字符流(輸入和輸出對應(yīng)的關(guān)系)

5【字符流和字節(jié)流之間的關(guān)系

流程

通過三個明確來完成。

1,明確源和目的。

源:輸入流。InputStream Reader

目的:輸出流。OutputStream Writer。

2,操作的數(shù)據(jù)是否是純文本。

是:字符流。 不是:字節(jié)流。

3,當(dāng)體系明確后,在明確要使用哪個具體的對象。

通過設(shè)備來進(jìn)行區(qū)分:

源設(shè)備:內(nèi)存,硬盤。鍵盤

目的設(shè)備:內(nèi)存,硬盤,控制臺。

分析過程示例:

將一個文本文件中數(shù)據(jù)存儲到另一個文件中。復(fù)制文件。

源:因為是源,所以使用讀取流。InputStream Reader

是不是操作文本文件。

是!這時就可以選擇Reader

這樣體系就明確了。

接下來明確要使用該體系中的哪個對象。

明確設(shè)備:硬盤。上一個文件。

Reader體系中可以操作文件的對象是 FileReader

是否需要提高效率:是!。加入Reader體系中緩沖區(qū) BufferedReader.

FileReader fr = new FileReader("a.txt");
BufferedReader bufr = new BufferedReader(fr); 

目的:OutputStream Writer

是否是純文本。

是!Writer。

設(shè)備:硬盤,一個文件。

Writer體系中可以操作文件的對象FileWriter。

是否需要提高效率:是!。加入Writer體系中緩沖區(qū) BufferedWriter

FileWriter fw = new FileWriter("b.txt");
BufferedWriter bufw = new BufferedWriter(fw);

參考來源:

http://www.cnblogs.com/oubo/archive/2012/01/06/2394638.html
http://www.cnblogs.com/skywang12345/p/io_01.html
http://www.cnblogs.com/runwind/p/4212178.html

總結(jié)

以上是生活随笔為你收集整理的javaIo的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。