日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
JavaI/O流概念分析整理

Java中的流,可以從不同的角度進(jìn)行分類。

  • 按照數(shù):輸入流和輸出流。
  • 按照處理數(shù)據(jù)單位不同可以分為:字節(jié)流和字符流。
  • 按照實(shí)現(xiàn)功能不同可以分為:節(jié)點(diǎn)流和處理流。

輸出流:

輸入流:

因此輸入和輸出都是從程序的角度來(lái)說(shuō)的。

字節(jié)流:一次讀入或讀出是8位二進(jìn)制。

字符流:一次讀入或讀出是16位二進(jìn)制。

字節(jié)流和字符流的原理是相同的,只不過(guò)處理的單位不同而已。后綴是Stream是字節(jié)流,而后綴是Reader,Writer是字符流。

節(jié)點(diǎn)流:直接與數(shù)據(jù)源相連,讀入或讀出。

直接使用節(jié)點(diǎn)流,讀寫不方便,為了更快的讀寫文件,才有了處理流。

處理流:與節(jié)點(diǎn)流一塊使用,在節(jié)點(diǎn)流的基礎(chǔ)上,再套接一層,套接在節(jié)點(diǎn)流上的就是處理流。

Jdk提供的流繼承了四大類:InputStream(字節(jié)輸入流),OutputStream(字節(jié)輸出流),Reader(字符輸入流),Writer(字符輸出流)。

以下是java中io中常用的流。

字節(jié)輸入流:

字節(jié)輸出流:

字符輸入流:

字符輸出流:

簡(jiǎn)單介紹其上圖:

對(duì)文件進(jìn)行操作:FileInputStream(字節(jié)輸入流),F(xiàn)ileOutputStream(字節(jié)輸出流),F(xiàn)ileReader(字符輸入流),F(xiàn)ileWriter(字符輸出流)

對(duì)管道進(jìn)行操作:PipedInputStream(字節(jié)輸入流),PipedOutStream(字節(jié)輸出流),PipedReader(字符輸入流),PipedWriter(字符輸出流)

PipedInputStream的一個(gè)實(shí)例要和PipedOutputStream的一個(gè)實(shí)例共同使用,共同完成管道的讀取寫入操作。主要用于線程操作。

字節(jié)/字符數(shù)組:ByteArrayInputStream,ByteArrayOutputStream,CharArrayReader,CharArrayWriter是在內(nèi)存中開辟了一個(gè)字節(jié)或字符數(shù)組。

Buffered緩沖流::BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter,是帶緩沖區(qū)的處理流,緩沖區(qū)的作用的主要目的是:避免每次和硬盤打交道,提高數(shù)據(jù)訪問(wèn)的效率。

  • 轉(zhuǎn)化流:InputStreamReader/OutputStreamWriter,把字節(jié)轉(zhuǎn)化成字符。
  • 數(shù)據(jù)流:DataInputStream,DataOutputStream。

因?yàn)槠綍r(shí)若是我們輸出一個(gè)8個(gè)字節(jié)的long類型或4個(gè)字節(jié)的float類型,那怎么辦呢?可以一個(gè)字節(jié)一個(gè)字節(jié)輸出,也可以把轉(zhuǎn)換成字符串輸出,但是這樣轉(zhuǎn)換費(fèi)時(shí)間,若是直接輸出該多好啊,因此這個(gè)數(shù)據(jù)流就解決了我們輸出數(shù)據(jù)類型的困難。數(shù)據(jù)流可以直接輸出float類型或long類型,提高了數(shù)據(jù)讀寫的效率。

  • 打印流:printStream,printWriter,一般是打印到控制臺(tái),可以進(jìn)行控制打印的地方。
  • 對(duì)象流:ObjectInputStream,ObjectOutputStream,把封裝的對(duì)象直接輸出,而不是一個(gè)個(gè)在轉(zhuǎn)換成字符串再輸出。
  • 序列化流:SequenceInputStream。
  • 對(duì)象序列化:把對(duì)象直接轉(zhuǎn)換成二進(jìn)制,寫入介質(zhì)中。

使用對(duì)象流需要實(shí)現(xiàn)Serializable接口,否則會(huì)報(bào)錯(cuò)。而若用transient關(guān)鍵字修飾成員變量,不寫入該成員變量,若是引用類型的成員變量為null,值類型的成員變量為0.

原文鏈接:http://blog.csdn.net/llhhyy1989/article/details/7388059


網(wǎng)站標(biāo)題:JavaI/O流概念分析整理
標(biāo)題路徑:http://www.dlmjj.cn/article/dpjhijs.html