日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java的標(biāo)準(zhǔn)數(shù)據(jù)流

Java輸入輸出(I/O)API是Java里最重要的API之一。Java I/O提供了許多API提供對(duì)文件,內(nèi)存,socket的讀寫。本文對(duì)Java I/O包括NIO等做一個(gè)總結(jié)。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、做網(wǎng)站、海東網(wǎng)絡(luò)推廣、小程序制作、海東網(wǎng)絡(luò)營銷、海東企業(yè)策劃、海東品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供海東建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com

Java里的流(Stream)概念:

流是一種有序的字節(jié)數(shù)據(jù)對(duì)象。流又分為輸入流(InputStream)和輸出流(OutputStream)。輸入流從外部資源(文件,內(nèi)存,socket等)讀入字節(jié)數(shù)據(jù)到Java對(duì)象;輸出流則把Java對(duì)象(字節(jié)數(shù)據(jù)等)寫入到外部資源。

所有Java I/O都可歸類為以下兩種:

1,字節(jié)數(shù)據(jù)輸入輸出I/O

2,文字列數(shù)據(jù)輸入輸出I/O

所有的字節(jié)數(shù)據(jù)輸入輸出I/O都繼承自java.io.InputStream和java.io.OutputStream接口。

字節(jié)數(shù)據(jù)輸入流及其派生類:

 
 
 
 
  1. java.io.InputStream 
  2. +--java.io.ByteArrayInputStream
  3. +--java.io.BufferedInputStream
  4. +--java.io.DataInputStream
  5. +--java.io.FileInputStream
  6. +--java.io.FilterInputStream
  7. +--java.io.ObjectInputStream
  8. +--java.io.PipedInputStream
  9. +--java.io.PushbackInputStream
  10. +--java.io.SequenceInputStream
  11. +--java.io.StringBufferInputStream

字節(jié)數(shù)據(jù)輸出流及其派生類:

 
 
 
 
  1. java.io.OutputStream
  2. +--java.io.BufferedOutputStream
  3. +--java.io.ByteArrayOutputStream
  4. +--java.io.DataOutputStream
  5. +--java.io.FileOutputStream
  6. +--java.io.FilterOutputStream
  7. +--java.io.ObjectOutputStream
  8. +--java.io.PipedOutputStream

所有的文字列數(shù)據(jù)輸入輸出I/O都繼承自java.io.Reader和java.io.Writer接口。

文字列數(shù)據(jù)輸入流及其派生類:

 
 
 
 
  1. java.io.Reader
  2. +--java.io.BufferedReader
  3. +--java.io.CharArrayReader
  4. +--java.io.FileReader
  5. +--java.io.FilterReader
  6. +--java.io.InputStreamReader
  7. +--java.io.LineNumberReader
  8. +--java.io.PipedReader
  9. +--java.io.PushbackReader
  10. +--java.io.StringReader

文字列數(shù)據(jù)輸出流及其派生類:

 
 
 
 
  1. java.io.Writer
  2. +--java.io.BufferedWriter
  3. +--java.io.CharArrayWriter
  4. +--java.io.FilterWriter
  5. +--java.io.OutputStreamWriter
  6. +--java.io.FileWriter
  7. +--java.io.PipedWriter
  8. +--java.io.PrintWriter
  9. +--java.io.StringWriter

它們(java.io)之間的關(guān)系可以用下圖來表示:

JDK 1.4以前的版本的Java I/O操作集中在java.io這個(gè)包中,是基于流的阻塞(blocking)API。

從JDK1.4開始引入了New I/O(NIO)API。該API包含在java.nio.*里。NIO有時(shí)也叫做nonblocking I/O(非阻塞I/O),NIO基于緩沖區(qū),并能提供非阻塞(non-blocking)IO操作。

NIO主要包:

java.nio

定義了Buffer及其數(shù)據(jù)類型相關(guān)的子類。

java.nio.channels

定義了高速文件處理/socket通信處理等I/O處理的Channel接口以及這些接口在文件系統(tǒng)和網(wǎng)絡(luò)通信等上的實(shí)現(xiàn)類。同時(shí)可以通過Selector類,提供了進(jìn)行非阻塞I/O操作的方法。該包是NIO API的核心包。

java.nio.charset

定義了字符編碼和解碼處理類。

NIO接口/類的層次結(jié)構(gòu):

 
 
 
 
  1. java.nio.ByteBuffer
  2. java.nio.channels.Channel
  3. +--java.nio.channels.ServerSocketChannel
  4. +--java.nio.channels.ReadableByteChannel
  5. +--java.nio.channels.ScatteringByteChannel
  6. +--java.nio.channels.ByteChannel
  7. +--java.nio.channels.WritableByteChannel
  8. +--java.nio.channels.ByteChannel
  9. +--java.nio.channels.GatheringByteChannel
  10. java.nio.channels.Slector
  11. java.nio.channels.ScatteringByteChannel, ByteChannel, GatheringByteChannel
  12. +--java.nio.channels.FileChannel
  13. +--java.nio.channels.SocketChannel
  14. +--java.nio.channels.DatagramChannel
  15. java.nio.charset.Charset
  16. java.nio.charset.CharsetEncoderjava.nio.charset.CharsetDecoder

NIO層次結(jié)構(gòu)圖:

***節(jié) 數(shù)據(jù)流的基本概念

◆ 理解數(shù)據(jù)流

流一般分為輸入流(Input Stream)和輸出流(Output Stream)兩類,但這種劃分并不是絕對(duì)的。比如一個(gè)文件,當(dāng)向其中寫數(shù)據(jù)時(shí),它就是一個(gè)輸出流;當(dāng)從其中讀取數(shù)據(jù)時(shí),它就是一個(gè)輸入流。當(dāng)然,鍵盤只是一個(gè)數(shù)人流,而屏幕則只是一個(gè)輸出流。

◆ 的標(biāo)準(zhǔn)數(shù)據(jù)流

標(biāo)準(zhǔn)輸入輸出指在字符方式下(如DOS),程序與系統(tǒng)進(jìn)行交互的方式,分為三種:

標(biāo)準(zhǔn)輸入studin,對(duì)象是鍵盤。

標(biāo)準(zhǔn)輸出stdout,對(duì)象是屏幕。

標(biāo)準(zhǔn)錯(cuò)誤輸出stderr,對(duì)象也是屏幕。

例 8.1 從鍵盤輸入字符。

本例用System.in.read(buffer)從鍵盤輸入一行字符,存儲(chǔ)在緩沖區(qū)buffer中,count保存實(shí)際讀入的字節(jié)個(gè)數(shù),再以整數(shù)和字符兩種方式輸出buffer中的值。Read方法在java.io包中,而且要拋出IOException異常。程序如下:

 
 
 
 
  1. import java.io.*;
  2. public class Input1
  3. {
  4. public static void main(String args[]) throws IOException
  5. System.out.println("Input: ");
  6. byte buffer[] = new byte[512]; //輸入緩沖區(qū)
  7. int count = System.in.read(buffer); //讀取標(biāo)準(zhǔn)輸入流
  8. System.out.println("Output: ");
  9. for (int i=0;i
  10. {
  11. System.out.print(" "+buffer[i]);
  12. }
  13. System.out.println();
  14. for (int i=0;i
  15. {
  16. System.out.print((char) buffer[i]);
  17. }
  18. System.out.println("count = "+ count); //buffer實(shí)際長度
  19. }
  20. }

程序中,main方法采用throws子句拋出IOException異常交由系統(tǒng)處理。

Java.io包中的數(shù)據(jù)流及文件類

字節(jié)流:

從InputStream和OutputStream派生出來的一系列類。這類流以字節(jié)(byte)為基本處理單位。

  • InputStream、OutputStream
  • FileInputStream、FileOutputStream
  • PipedInputStream、PipedOutputStream
  • ByteArrayInputStream、ByteArrayOutputStream
  • FilterInputStream、FilterOutputStream
  • DataInputStream、DataOutputStream
  • BufferedInputStream、BufferedOutputStream

字符流:

從Reader和Writer派生出的一系列類,這類流以16位的Unicode碼表示的字符為基本處理單位

  • Reader、Writer
  • InputStreamReader、OutputStreamWriter
  • FileReader、FileWriter
  • CharArrayReader、CharArrayWriter
  • PipedReader、PipedWriter
  • FilterReader、FilterWriter
  • BufferedReader、BufferedWriter
  • StringReader、StringWriter

網(wǎng)頁名稱:Java的標(biāo)準(zhǔn)數(shù)據(jù)流
轉(zhuǎn)載源于:http://www.5511xx.com/article/cdjpehs.html