中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java的標準數據流有哪些

發布時間:2022-01-06 20:15:12 來源:億速云 閱讀:174 作者:iii 欄目:編程語言

這篇文章主要講解了“Java的標準數據流有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java的標準數據流有哪些”吧!

Java輸入輸出(I/O)API是Java里最重要的API之一。Java I/O提供了許多API提供對文件,內存,socket的讀寫。

Java里的流(Stream)概念:

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

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

1,字節數據輸入輸出I/O

2,文字列數據輸入輸出I/O

所有的字節數據輸入輸出I/O都繼承自java.io.InputStream和java.io.OutputStream接口。

字節數據輸入流及其派生類:

java.io.InputStream   +--java.io.ByteArrayInputStream  +--java.io.BufferedInputStream  +--java.io.DataInputStream  +--java.io.FileInputStream  +--java.io.FilterInputStream  +--java.io.ObjectInputStream  +--java.io.PipedInputStream  +--java.io.PushbackInputStream  +--java.io.SequenceInputStream  +--java.io.StringBufferInputStream

字節數據輸出流及其派生類:

java.io.OutputStream  +--java.io.BufferedOutputStream  +--java.io.ByteArrayOutputStream  +--java.io.DataOutputStream  +--java.io.FileOutputStream  +--java.io.FilterOutputStream  +--java.io.ObjectOutputStream  +--java.io.PipedOutputStream

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

文字列數據輸入流及其派生類:

java.io.Reader  +--java.io.BufferedReader  +--java.io.CharArrayReader  +--java.io.FileReader  +--java.io.FilterReader  +--java.io.InputStreamReader  +--java.io.LineNumberReader  +--java.io.PipedReader  +--java.io.PushbackReader  +--java.io.StringReader

文字列數據輸出流及其派生類:

java.io.Writer  +--java.io.BufferedWriter  +--java.io.CharArrayWriter  +--java.io.FilterWriter  +--java.io.OutputStreamWriter  +--java.io.FileWriter  +--java.io.PipedWriter  +--java.io.PrintWriter  +--java.io.StringWriter

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

Java的標準數據流有哪些

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

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

NIO主要包:

java.nio

定義了Buffer及其數據類型相關的子類。

java.nio.channels

定義了高速文件處理/socket通信處理等I/O處理的Channel接口以及這些接口在文件系統和網絡通信等上的實現類。同時可以通過Selector類,提供了進行非阻塞I/O操作的方法。該包是NIO API的核心包。

java.nio.charset

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

NIO接口/類的層次結構:

java.nio.ByteBuffer  java.nio.channels.Channel  +--java.nio.channels.ServerSocketChannel  +--java.nio.channels.ReadableByteChannel  +--java.nio.channels.ScatteringByteChannel  +--java.nio.channels.ByteChannel  +--java.nio.channels.WritableByteChannel  +--java.nio.channels.ByteChannel  +--java.nio.channels.GatheringByteChannel  java.nio.channels.Slector  java.nio.channels.ScatteringByteChannel, ByteChannel, GatheringByteChannel  +--java.nio.channels.FileChannel  +--java.nio.channels.SocketChannel  +--java.nio.channels.DatagramChannel  java.nio.charset.Charset  java.nio.charset.CharsetEncoderjava.nio.charset.CharsetDecoder

NIO層次結構圖:

Java的標準數據流有哪些

***節 數據流的基本概念

◆ 理解數據流

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

◆ 的標準數據流

標準輸入輸出指在字符方式下(如DOS),程序與系統進行交互的方式,分為三種:

標準輸入studin,對象是鍵盤。

標準輸出stdout,對象是屏幕。

標準錯誤輸出stderr,對象也是屏幕。

例 8.1 從鍵盤輸入字符。

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

import java.io.*;  public class Input1  {  public static void main(String args[]) throws IOException  {   System.out.println("Input: ");  byte buffer[] = new byte[512]; //輸入緩沖區  int count = System.in.read(buffer); //讀取標準輸入流  System.out.println("Output: ");  for (int i=0;i<COUNT;I++) 輸出buffer元素值  {  System.out.print(" "+buffer[i]);  }  System.out.println();  for (int i=0;i<COUNT;I++) 按字符方式輸出buffer  {  System.out.print((char) buffer[i]);  }  System.out.println("count = "+ count); //buffer實際長度  }  }

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

Java.io包中的數據流及文件類

字節流:

從InputStream和OutputStream派生出來的一系列類。這類流以字節(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

感謝各位的閱讀,以上就是“Java的標準數據流有哪些”的內容了,經過本文的學習后,相信大家對Java的標準數據流有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高碑店市| 婺源县| 溧阳市| 深圳市| 新沂市| 邢台市| 大英县| 康平县| 曲靖市| 大同县| 九江市| 中江县| 清水河县| 赤壁市| 盐边县| 牟定县| 邯郸市| 乌拉特前旗| 隆昌县| 哈巴河县| 孙吴县| 泗阳县| 溆浦县| 怀宁县| 呼和浩特市| 安阳市| 长海县| 奇台县| 十堰市| 定南县| 承德县| 新邵县| 泰来县| 松潘县| 仙居县| 马关县| 鄂托克旗| 遵义市| 南投县| 黔江区| 花莲县|