自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java I/O流概念分析整理

開發(fā) 后端
Java中的流,可以從不同的角度進(jìn)行分類。 按照數(shù):輸入流和輸出流。按照處理數(shù)據(jù)單位不同可以分為:字節(jié)流和字符流。按照實現(xiàn)功能不同可以分為:節(jié)點(diǎn)流和處理流。

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

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

輸出流:

 

 

輸入流:

因此輸入和輸出都是從程序的角度來說的。

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

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

字節(jié)流和字符流的原理是相同的,只不過處理的單位不同而已。后綴是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é)輸出流:

字符輸入流:

字符輸出流:

簡單介紹其上圖:

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

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

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

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

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

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

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

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

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

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

責(zé)任編輯:陳四芳 來源: 我的青春我做主
相關(guān)推薦

2013-09-16 16:07:38

Java基礎(chǔ)IO

2011-09-19 16:17:02

Java

2012-05-14 11:53:44

IO虛擬化

2010-05-11 13:36:50

Unix標(biāo)準(zhǔn)

2013-05-28 10:08:41

IO輸出

2016-08-23 17:21:51

UnixLinux重定向

2011-12-19 14:05:01

JavaIO

2013-09-17 13:43:51

IO

2015-08-10 14:39:46

Java 操作建議

2015-10-19 09:34:42

TCPIP網(wǎng)絡(luò)協(xié)議

2018-07-31 15:53:00

數(shù)據(jù)庫MySQLi-o

2018-11-05 11:20:54

緩沖IO

2023-07-26 08:22:17

JavaIO流

2011-01-14 09:25:28

LinuxIO機(jī)制

2020-06-03 17:30:42

LinuxIO

2020-12-11 11:04:07

NettyIO

2020-08-07 08:03:37

IONetty

2023-07-12 08:24:19

Java NIO通道

2023-12-26 12:18:02

Java設(shè)計開發(fā)

2022-12-08 09:10:11

I/O模型Java
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號