成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java的標準數據流

開發 后端
Java輸入輸出(I/O)API是Java里最重要的API之一。Java I/O提供了許多API提供對文件,內存,socket的讀寫。本文對Java I/O包括NIO等做一個總結。

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

Java里的流(Stream)概念:

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

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

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

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

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

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

  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 

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

  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 

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

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

  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 

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

  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)之間的關系可以用下圖來表示:

 

 

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接口/類的層次結構:

  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層次結構圖:

 

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

◆ 理解數據流

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

◆ 的標準數據流

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

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

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

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

例 8.1 從鍵盤輸入字符。

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

  1. import java.io.*;  
  2. public class Input1  
  3. {  
  4. public static void main(String args[]) throws IOException  
  5. {   
  6. System.out.println("Input: ");  
  7. byte buffer[] = new byte[512]; //輸入緩沖區  
  8. int count = System.in.read(buffer); //讀取標準輸入流  
  9. System.out.println("Output: ");  
  10. for (int i=0;i<COUNT;I++) 輸出buffer元素值  
  11. {  
  12. System.out.print(" "+buffer[i]);  
  13. }  
  14. System.out.println();  
  15. for (int i=0;i<COUNT;I++) 按字符方式輸出buffer  
  16. {  
  17. System.out.print((char) buffer[i]);  
  18. }  
  19. System.out.println("count = "+ count); //buffer實際長度  
  20. }  

程序中,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

原文鏈接:http://www.cnblogs.com/aviva/archive/2008/03/28/1127440.html

【編輯推薦】

  1. 全面解讀Java NIO工作原理
  2. OA市場格局輪廓突顯 JAVA成高端用戶主流選擇
  3. Java NIO 異步讀取網絡數據
  4. Java NIO(異步IO)Socket通信例子
  5. 影響Java NIO框架性能的因數
責任編輯:林師授 來源: aviva的博客
相關推薦

2009-08-19 10:41:12

Java輸入數據流

2016-11-14 19:01:36

數據流聊天系統web

2020-02-06 19:12:36

Java函數式編程編程語言

2022-03-18 08:57:17

前端數據流選型

2017-11-16 19:26:34

海量數據算法計算機

2021-10-27 10:43:36

數據流中位數偶數

2011-04-14 14:43:38

SSISTransformat

2012-07-30 08:31:08

Storm數據流

2019-12-19 14:38:08

Flink SQL數據流Join

2011-04-19 09:18:02

SSIS數據轉換

2013-10-21 10:58:50

微軟大數據SQL Server

2009-07-15 09:06:11

Linux圖形系統X11的CS架構

2014-12-02 10:56:47

TCPIP交互數據流

2014-02-11 08:51:15

亞馬遜PaaSAppStream

2021-06-29 19:24:42

數據流數據排序

2020-08-20 11:24:31

物聯網數據技術

2023-07-24 08:20:11

StreamJava方式

2023-07-26 00:20:20

Java 8數組方式

2023-08-18 09:29:59

Java數據流

2019-06-18 13:51:08

大數據流處理新興市場
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一区二区三区在线视频 | 在线播放国产一区二区三区 | 日韩一区av | 久久久久国产 | 在线成人免费av | 古装三级在线播放 | 亚洲男人天堂2024 | 欧美一区二区视频 | 亚洲在线 | 国产在线网站 | 在线婷婷| 久久亚洲欧美日韩精品专区 | 色.com| 在线观看国产视频 | 日本视频中文字幕 | 天天射天天干 | 一区二区三 | 99久久久久国产精品免费 | 国产乱性 | 日韩一区二区三区视频 | 亚洲激情在线观看 | 国产精品一区久久久 | 日本在线精品视频 | 一区2区 | 日韩欧美专区 | 在线成人一区 | 亚洲国产一区二区三区 | 天天综合久久 | 日韩欧美精品在线播放 | 夜夜夜久久| 亚洲国产成人精品久久久国产成人一区 | 欧美日韩中文字幕在线 | 视频一区二区在线观看 | 国产精品一区在线 | 91xxx在线观看| 国产精品无码永久免费888 | 亚洲综合第一页 | 网站国产 | 久久成人精品 | 99riav国产一区二区三区 | 亚洲国产欧美日韩 |