国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

IO流家族

2019-11-11 06:37:26
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

java中數(shù)據(jù)內(nèi)存操作內(nèi)存中的具體容量, 例如: byte[] buf = new byte[1024], 這只能操作byte的長(zhǎng)度,byte.length, 當(dāng)存儲(chǔ)一些字節(jié), 想清楚地知道里面占了多少個(gè)字節(jié), 是無(wú)法做到的. 其已經(jīng)被封裝在最底層了. 因此, 我們?nèi)ゲ僮鱅O流時(shí), 要操作相對(duì)應(yīng)的數(shù)據(jù)內(nèi)存, 就找對(duì)應(yīng)的類, 以下就是IO大家族的分類:

Java中其他多種多樣變化的流均是由它們派生出來(lái)的:

      JDK1.4版本開(kāi)始引入了新I/O類庫(kù),它位于java.nio包中,新I/O類庫(kù)利用通道和緩沖區(qū)等來(lái)提高I/O操作的效率。

      在java.io包中, java.io.InputStream 表示字節(jié)輸入流, java.io.OutputStream表示字節(jié)輸出流,處于java.io包最頂層。這兩個(gè)類均為抽象類,也就是說(shuō)它們不能被實(shí)例化,必須生成子類之后才能實(shí)現(xiàn)一定的功能。

1. io流的具體分類

一、按I/O類型來(lái)總體分類:

     1. Memory 1)從/向內(nèi)存數(shù)組讀寫(xiě)數(shù)據(jù): CharArrayReader、 CharArrayWriter、ByteArrayInputStream、ByteArrayOutputStream                   2)從/向內(nèi)存字符串讀寫(xiě)數(shù)據(jù) StringReader、StringWriter、StringBufferInputStream     2.Pipe管道  實(shí)現(xiàn)管道的輸入和輸出(進(jìn)程間通信): PipedReader、PipedWriter、PipedInputStream、PipedOutputStream     3.File 文件流。對(duì)文件進(jìn)行讀、寫(xiě)操作 :FileReader、FileWriter、FileInputStream、FileOutputStream     4. ObjectSerialization 對(duì)象輸入、輸出 :ObjectInputStream、ObjectOutputStream     5.DataConversion數(shù)據(jù)流 按基本數(shù)據(jù)類型讀、寫(xiě)(處理的數(shù)據(jù)是Java的基本類型(如布爾型,字節(jié),整數(shù)和浮點(diǎn)數(shù))):DataInputStream、DataOutputStream     6.PRinting 包含方便的打印方法 :PrintWriter、PrintStream     7.Buffering緩沖  在讀入或?qū)懗鰰r(shí),對(duì)數(shù)據(jù)進(jìn)行緩存,以減少I/O的次數(shù):BufferedReader、BufferedWriter、BufferedInputStream、BufferedOutputStream     8.Filtering 濾流,在數(shù)據(jù)進(jìn)行讀或?qū)憰r(shí)進(jìn)行過(guò)濾:FilterReader、FilterWriter、FilterInputStream、FilterOutputStream過(guò)     9.Concatenation合并輸入 把多個(gè)輸入流連接成一個(gè)輸入流 :SequenceInputStream     10.Counting計(jì)數(shù)  在讀入數(shù)據(jù)時(shí)對(duì)行記數(shù) :LineNumberReader、LineNumberInputStream    11.Peeking Ahead 通過(guò)緩存機(jī)制,進(jìn)行預(yù)讀 :PushbackReader、PushbackInputStream    12.Converting between Bytes and Characters 按照一定的編碼/解碼標(biāo)準(zhǔn)將字節(jié)流轉(zhuǎn)換為字符流,或進(jìn)行反向轉(zhuǎn)換(Stream到Reader,Writer的轉(zhuǎn)換類):InputStreamReader、OutputStreamWriter

、按數(shù)據(jù)來(lái)源(去向)分類: 1、File(文件): FileInputStream, FileOutputStream, FileReader, FileWriter 2、byte[]:ByteArrayInputStream, ByteArrayOutputStream 3、Char[]: CharArrayReader, CharArrayWriter 4、String: StringBufferInputStream, StringReader, StringWriter 5、網(wǎng)絡(luò)數(shù)據(jù)流:InputStream, OutputStream, Reader, Writer 

..............................................................................................................................................................................................................

因此, 實(shí)現(xiàn)獲取文件的字節(jié)方式如下: 

public void copy() throws IOException{		byte[] buf = new byte[1024];		InputStream in = new FileInputStream("d:/360/female.jpg");		int length = 0;		ByteArrayOutputStream output = new ByteArrayOutputStream();		while((length = in.read(buf)) != -1 ){			output.write(buf, 0, length);		}		System.out.println(output.toByteArray().length);	}

參考鏈接:  http://blog.csdn.net/hguisu/article/details/7418161


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 东阳市| 景宁| 章丘市| 滨海县| 容城县| 三都| 泾源县| 屯留县| 赤峰市| 泸定县| 夏津县| 来宾市| 开鲁县| 开封县| 高要市| 蒲江县| 崇信县| 玛多县| 中西区| 都匀市| 重庆市| 迭部县| 杭锦后旗| 建昌县| 宁武县| 大港区| 叙永县| 昭苏县| 鄂伦春自治旗| 巴东县| 西畴县| 普格县| 嘉禾县| 庆云县| 重庆市| 肇东市| 英吉沙县| 周口市| 万荣县| 北票市| 云霄县|