這篇文章主要講解了“Java流概念是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Java流概念是什么”吧!
創(chuàng)新互聯(lián)為客戶提供專業(yè)的成都網(wǎng)站建設(shè)、成都做網(wǎng)站、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開發(fā). 服務(wù)項目涵蓋了網(wǎng)頁設(shè)計、網(wǎng)站程序開發(fā)、WEB系統(tǒng)開發(fā)、微信二次開發(fā)、手機網(wǎng)站制作設(shè)計等網(wǎng)站方面業(yè)務(wù)。
一、Java流定義。
Java中的流是一個很抽象的概念,當程序需要讀取一個文件時,就會開啟一個通向數(shù)據(jù)源(被讀取的文件)的流。流是對輸入輸出設(shè)備的抽象,Java程序中,對于數(shù)據(jù)的輸入/輸出操作都是以“流”的方式進行。設(shè)備可以是文件,網(wǎng)絡(luò),內(nèi)存等。
二、Java中流的分類
1、字節(jié)流(Byte Stream)
InputStream(抽象類)與OutputStream(抽象類)所有字節(jié)流的頂級父類,這類流以字節(jié)(Byte)為基本處理單位
2、字符流(Character Stream)
Reader(抽象類)與Writer(抽象類)所有字符流的頂級父類,這類流以16位的Unicode表示的字符基本單位。
三、標準的輸入/輸出流
1、標準的輸出流 system.out
向標準輸出設(shè)備輸出數(shù)據(jù),其數(shù)據(jù)類型為PrintStream
常用方法:void print(參數(shù)) 和 void println(參數(shù))
system.out通過調(diào)用println方法輸出參數(shù)并換行,調(diào)用print方法輸出不換行
2、標準的輸入流system.in
向標準的輸入設(shè)備輸入數(shù)據(jù)(一般為鍵盤),其數(shù)據(jù)類型為InputStream
常用方法:int read() 返回ASCII碼,返回值為-1則沒有讀取任何字節(jié),讀取工作結(jié)束
int read(byte b[]) :讀入多個字節(jié)到緩沖區(qū)b中,返回值是讀入的字節(jié)數(shù)
package cn.itcase.stream;
import java.io.IOException;
public class Demo {
//從鍵盤輸入 輸入什么 打印什么
public static void main(String[] args) {
int b;
try {
System.out.println("please Input");
while((b=System.in.read()) !=-1){
System.out.println((char)b);
}
} catch (IOException e) {
System.out.println(e.toString());
}
}
}
3、標準錯誤流
System.err 標準錯誤流,其數(shù)據(jù)類型為PrintStream。
四、I/O流按類型分類
1、Memory
從/向內(nèi)存數(shù)組讀寫數(shù)據(jù):CharArrayReader,CharArrayWriter,ByteArrayInputStream,ByteArrayOutputStream
從/向內(nèi)存字符串讀寫數(shù)據(jù):StringReader,StringWriter,StringBufferInputStream,StringBufferOutStream
2、Pipe管道
實現(xiàn)管道的輸入和輸出(進程間通信):PipedReader,PipeWriter,PipedInputStream,PipedOutputStream
3、File文件流
對文件進行讀寫操作:FileReader,FileWriter,FileInputStream,FileOutputStream
4、ObjectSerialization
對象輸入,輸出:ObjectInputStream,ObjectOutputStream
5、DataConversion數(shù)據(jù)流
按基本數(shù)據(jù)類型讀,寫(處理的數(shù)據(jù)是Java的基本數(shù)據(jù)類型):DataInputStream,DateOutputStream
6、Printing
包含方便的打印方法:PrintWriter,PrintStream
7、Buffering 緩沖區(qū)
在讀入,寫出時 對數(shù)據(jù)進行緩存,以減少I/O的次數(shù):BufferedReader,BufferedWriter,BufferedIputStream,BuffereOutputStream
8、Filtering 濾流
在數(shù)據(jù)進行讀寫時進行過濾:FilterReader,FilterWriter,FilerInputStream,FilterOutputStream
9、Concatenation
合并輸入并把多個輸入流連成一個輸入流:SequenceInputStream
10、Conunting
在讀入數(shù)據(jù)時對行記數(shù):LineNumberReader,LineNumberInputStream
11、Peeking Ahead
通過通過緩存機制進行預(yù)讀:PushBackReader,PushBackInputStream
12、Converting between Bytes and Characters
按照一定的編碼/解碼標準將字節(jié)流轉(zhuǎn)換為字符流,或反向轉(zhuǎn)換(Stream到Reader,Writer的轉(zhuǎn)換類):InputStreamReader,OutputStreamWriter
感謝各位的閱讀,以上就是“Java流概念是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Java流概念是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!