大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java中的輸入流與輸出流

Java中的輸入流與輸出流

更新時間:2020-08-03 15:29:26 來源:動力節(jié)點(diǎn) 瀏覽2320次

一、流的概念

在Java中,流是從源到目的地的字節(jié)的有序序列。Java中有兩種基本的流——輸入流(InputStream)和輸出流(OutputStream)。

根據(jù)流相對于程序的另一個端點(diǎn)的不同,分為節(jié)點(diǎn)流和過濾流。

(1)節(jié)點(diǎn)流:以特定源如磁盤文件、內(nèi)存某區(qū)域或者線程之間的管道為端點(diǎn)的構(gòu)造輸入輸出流,是一種基本的流。

(2)過濾流:以其他已經(jīng)存在的流為端點(diǎn)構(gòu)造的輸入輸出流。

根據(jù)流中的數(shù)據(jù)單位分為字節(jié)流和字符流。

(1)字節(jié)流:流中的數(shù)據(jù)是以8位字節(jié)為單位進(jìn)行讀寫,以InputStream和OutputStream為基礎(chǔ)類。

(2)字符流:流中的數(shù)據(jù)是以16為字符為單位進(jìn)行讀寫,以Reader和Writer為基礎(chǔ)類。

二、字節(jié)流

InputStream和OutputStream是字節(jié)流的兩個頂層父類,提供了輸入流類和輸出流類的通用API。

1、輸入字節(jié)流

InputStream基本方法:

(1)基本讀方法;:int read()int read(byte[]b)int read(byte[]b,int off,int len)

(2)關(guān)閉流:void close()

(3)返回輸入流中還有多少可讀字節(jié)int available()

(4)跳過指定字節(jié)long skip(long n)

(5)回讀數(shù)據(jù)boolean markSupported()void Mark(int readlimt)void reset()

2、輸出字符流

OutputStream基本方法:

(1)基本寫方法:void write(int c)void write(byte[]b)void write(byte[]b,int off,int len)

(2)關(guān)閉流:void close()

(3)q強(qiáng)制輸出:void flush()

三、字符流

Reader和Writer是字符流的頂層父類,字符流能夠處理Unicode字符集中的所有字符。成員方法和字節(jié)流類似。

四、輸入輸出流的套接

節(jié)點(diǎn)流在程序中不是很常見,一般通過過濾流將多個流套接起來,利用各個流的特性共同處理數(shù)據(jù)。

例如下圖:一個文件流為了為了提高效率,套接了緩存流,最后套接了數(shù)據(jù)流。

五、常見的輸入輸出流

1、文件流:文件流屬于節(jié)點(diǎn)流,包括FileInputStream和FileOutputStream類以及Reader和Writer類。這些類都是對文件系統(tǒng)中的文件進(jìn)行讀寫。文件流的創(chuàng)建是調(diào)用相應(yīng)的構(gòu)造方法,并經(jīng)常以字符串形式的文件名或者一個File類的對象為參數(shù),例如:

1 public FileInputStream(String name);

2 public FileInputStream(File file);

例如使用文件流實(shí)現(xiàn)文件的復(fù)制:

package?ch01;
import?java.io.File;
import?java.io.FileInputStream;
import?java.io.FileNotFoundException;
import?java.io.FileOutputStream;
import?java.io.IOException;
import?java.io.InputStream;
import?java.io.OutputStream;

public?class?CopyBytes?{

????public?static?void?main(String[]?args)?throws?IOException?{
????????FileInputStream?fileis?=?new?FileInputStream(new?File("E:\\file/FileTest01.txt"));
????????FileOutputStream?fileos?=?new?FileOutputStream(new?File("E:\\\\file/FileTest02.txt"));
?????????int?c;
?????????while?((c=fileis.read())?!=?-1)?{?
?????????????fileos.write(c);
?????????????System.out.println(c);
?????????}
?????????fileis.close();
?????????fileos.close();
?????????System.out.println("OK");?
????}

}

2、使用文件字符流實(shí)現(xiàn)

package?ch07;
import?java.io.FileReader;
import?java.io.FileWriter;
import?java.io.IOException;

public?class?Copy?{
public?static?void?main(String[]?args)?throws?IOException{
????//創(chuàng)建文件字符輸入/輸出流
????FileReader?in?=new?FileReader("E:\\workspace\\tmpfile\\farrago.doc");
????FileWriter?out=new?FileWriter("E:\\workspace\\tmpfile\\outagainb.doc");
????int?c;
????while((c=in.read())!=-1){
????????System.out.println(c);
????????out.write(c);
????}
????in.close();
????out.close();
}
}

六、緩沖流

緩沖流BufferedInputStream和BufferedOutputStream類和BufferedReader和BufferedWriter類。這種流把數(shù)據(jù)從原始流成塊讀入或者積累到一個大數(shù)據(jù)快的時候在成批寫出。BufferedOutputStream和BufferedWrite僅僅在緩沖區(qū)滿或者調(diào)用flush()時候才把數(shù)據(jù)寫到目的地。

構(gòu)造方法:

public BufferedInputStream(InputStream in)
public BufferedInputStream(InputStream in,int size)

七、管道流

管道流可以實(shí)現(xiàn)線程之間的數(shù)據(jù)的直接傳輸。

1、管道流模型:

PipedReader/PipedInputStream實(shí)現(xiàn)管道的輸入流,而PipedWriter和PipedOutputStream實(shí)現(xiàn)輸出流。

2、管道流的創(chuàng)建:

管道流的創(chuàng)建是將管道輸入流和管道輸出流進(jìn)行掛連。構(gòu)造方法有下面兩種方式:

PipedInputStream?pInputStream=new?PipedInputStream();
PipedOutputStream?pOutputStream=new?PipedOutputStream(pInputStream);
或者
PipedInputStream?pInputStream=new?PipedInputStream();
PipedOutputStream?pOutputStream=new?PipedOutputStream();
pInputStream.connect(pOutputStream);
pOutputStream.connect(pInputStream);

以上就是動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對“Java中的輸入流與輸出流”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 久久精品久噜噜噜久久 | 国产高清美女一级a毛片久久w | 免费一级欧美大片视频在线 | 伊人55影院 | 久久在线中文字幕 | 麻豆精品一区 | 欧美日韩一级大片 | 午夜不卡影院 | 日日操狠狠干 | a成人毛片免费观看 | 免费h片在线观看网址最新 免费v片在线观看无遮挡 | 狠狠色丁香久久婷婷综合五月 | 亚洲欧美第一 | 天天射天天爱天天干 | 欧美精品久久一区二区三区 | 亚洲区一区 | 日韩不卡视频在线观看 | 国产精品成人免费视频不卡 | 婷婷亚洲激情 | 精品69久久久久久99 | 国产亚洲自在精品久久 | 天天天天干 | 成人毛片免费观看视频在线 | 精品久久久久久久九九九精品 | 国产欧美综合在线一区二区三区 | 日本成片 | 亚洲国产成人久久综合一区77 | 香蕉视频黄色在线观看 | 亚洲另类中文字幕 | 99热久热这里只精品 | 不卡高清av手机在线观看 | 四虎影院免费观看视频 | 激情四房 | 四虎精品免费久久 | 欧美日日干 | 毛片永久新网址首页 | 色偷偷亚洲精品一区 | 国产成人18黄网站麻豆 | 精品一区二区在线观看 | 一区二区福利视频 | 97色综合|