日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

1.1 Java流是什么?输入/输出流又是什么?

發布時間:2025/3/20 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.1 Java流是什么?输入/输出流又是什么? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在 Java 中所有數據都是使用流讀寫的。流是一組有序的數據序列,將數據從一個地方帶到另一個地方。根據數據流向的不同,可以分為輸入(Input)流和輸出(Output)流兩種。

在學習輸入和輸出流之前,我們要明白為什么應用程序需要輸入和輸出流。例如,我們平時用的 Office 軟件,對于 Word、Excel 和 PPT 文件,我們需要打開文件并讀取這些文本,和編輯輸入一些文本,這都需要利用輸入和輸出的功能。在現實生活中,輸入和輸出的例子比比皆是。

在前面章節中,我們經常使用“System.out.println”方法,它就是一個輸出方法。后面我們會講述更多的方法,并通過大量的實例來展示它們的用法。

下面詳細介紹什么是輸入流和輸出流,以及 Java 中流的類型及每種類型的相關類。

什么是輸入/輸出流

Java 程序通過流來完成輸入/輸出,所有的輸入/輸出以流的形式處理。因此要了解 I/O 系統,首先要理解輸入/輸出流的概念。

輸入就是將數據從各種輸入設備(包括文件、鍵盤等)中讀取到內存中,輸出則正好相反,是將數據寫入到各種輸出設備(比如文件、顯示器、磁盤等)。例如鍵盤就是一個標準的輸入設備,而顯示器就是一個標準的輸出設備,但是文件既可以作為輸入設備,又可以作為輸出設備。

數據流是 Java 進行 I/O 操作的對象,它按照不同的標準可以分為不同的類別。

  • 按照流的方向主要分為輸入流和輸出流兩大類。
  • 數據流按照數據單位的不同分為字節流和字符流。
  • 按照功能可以劃分為節點流和處理流。

數據流的處理只能按照數據序列的順序來進行,即前一個數據處理完之后才能處理后一個數據。數據流以輸入流的形式被程序獲取,再以輸出流的形式將數據輸出到其它設備。圖 1 為輸入流模式,圖 2 為輸出流模式。

IO流總覽


IO流分類

按照“流”的數據流向,可以將其化分為:輸入流和輸出流

按照“流”中處理數據的單位,可以將其區分為:字節流和字符流

在java中,字節是占1個Byte,即8位;而字符是占2個Byte,即16位。而且,需要注意的是,java的字節是有符號類型,而字符是無符號類型!

字節流的抽象基類:InputStream,OutputStream

字符流的抽象基類:Reader,Writer

由這四個類派生出來的子類名稱都是以其父類名作為子類名的后綴,如InputStream的子類FileInputStream,Reader的子類FileReader。

輸入流

Java 流相關的類都封裝在 java.io 包中,而且每個數據流都是一個對象。所有輸入流類都是 InputStream 抽象類(字節輸入流)和 Reader 抽象類(字符輸入流)的子類。其中 InputStream 類是字節輸入流的抽象類,是所有字節輸入流的父類,其層次結構如圖 3 所示。

InputStream 類中所有方法遇到錯誤時都會引發 IOException 異常。如下是該類中包含的常用方法。

InputStream 類常用方法

  • int read():從輸入流讀入一個 8 字節的數據,將它轉換成一個 0~ 255 的整數,返回一個整數,如果遇到輸入流的結尾返回 -1
  • int read(byte[] b):從輸入流讀取若干字節的數據保存到參數 b指定的字節數組中,返回的字節數表示讀取的字節數,如果遇到輸入流的結尾返回 -1
  • int read(byte[] b,int off,int len):從輸入流讀取若干字節的數據保存到參數 b 指定的字節數組中,其中off 是指在數組中開始保存數據位置的起始下標,len 是指讀取字節的位數。返回的是實際讀取的字節數,如果遇到輸入流的結尾則返回 -1
  • void close():關閉數據流,當完成對數據流的操作之后需要關閉數據流
  • int available():返回可以從數據源讀取的數據流的位數。
  • skip(long n):從輸入流跳過參數 n 指定的字節數目
  • boolean markSupported():判斷輸入流是否可以重復讀取,如果可以就返回 true
  • void mark(int readLimit):如果輸入流可以被重復讀取,從流的當前位置開始設置標記,readLimit指定可以設置標記的字節數
  • void reset():使輸入流重新定位到剛才被標記的位置,這樣可以重新讀取標記過的數據

上述最后 3 個方法一般會結合在一起使用
首先使用 markSupported() 判斷,如果可以重復讀取,
則使用 mark(int readLimit) 方法進行標記,
標記完成之后可以使用 read() 方法讀取標記范圍內的字節數,
最后使用 reset() 方法使輸入流重新定位到標記的位置,繼而完成重復讀取操作。

Java 中的字符是 Unicode 編碼,即雙字節的,而 InputerStream 是用來處理單字節的,在處理字符文本時不是很方便。這時可以使用 Java 的文本輸入流 Reader 類,該類是字符輸入流的抽象類,即所有字符輸入流的實現都是它的子類,該類的方法與 InputerSteam 類的方法類似,這里不再介紹。

輸出流

在 Java 中所有輸出流類都是 OutputStream 抽象類(字節輸出流)和 Writer 抽象類(字符輸出流)的子類。其中 OutputStream 類是字節輸出流的抽象類,是所有字節輸出流的父類,其層次結構如圖 4 所示。

OutputStream 類是所有字節輸出流的超類,用于以二進制的形式將數據寫入目標設備,該類是抽象類,不能被實例化。OutputStream 類提供了一系列跟數據輸出有關的方法,如下所示。

  • int write(b):將指定字節的數據寫入到輸出流
  • int write (byte[] b):將指定字節數組的內容寫入輸出流
  • int write (byte[] b,int off,int len):將指定字節數組從 off 位置開始的 len
    字節的內容寫入輸出流
  • close():關閉數據流,當完成對數據流的操作之后需要關閉數據流
  • flush():刷新輸出流,強行將緩沖區的內容寫入輸出流
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的1.1 Java流是什么?输入/输出流又是什么?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本a在线免费观看 | 日韩在线欧美 | 超污视频网站 | 99久久亚洲精品日本无码 | 国偷自产视频一区二区久 | 国产理论片 | av成人在线免费观看 | 激情一区二区三区 | av在线操| 午夜视频1000 | 一级美女黄色片 | 黄色片子视频 | jvid视频 | 日韩专区av | 狠狠插狠狠干 | 丰满白嫩尤物一区二区 | 国产黄片毛片 | 91美女视频网站 | a√在线视频 | fc2成人免费视频 | 日本福利片在线观看 | 爱插网| 久热这里只有精品在线 | 亚洲码无人客一区二区三区 | av高清在线免费观看 | 色播在线播放 | 国产精品爽爽久久久久久 | 色片免费看 | 免费激情片 | 麻豆免费视频 | 干欧美少妇 | 青青草原一区二区 | 精品视频网| www.久久精品视频 | 国产黄站 | 欧美亚洲综合网 | 一色道久久88加勒比一 | 国模私拍视频在线 | 黄色va| 国产欧美综合一区 | 午夜影院在线免费观看 | 玖玖999| 色播日韩| 男男gay同性三级 | 韩国美女黄色片 | 色偷偷免费视频 | 特黄特色大片免费视频大全 | 色老太hd老太色hd | 国内精品国产三级国产aⅴ久 | 欧美性猛交ⅹxx乱大交 | 特黄一级毛片 | 国产三级全黄 | 亚洲第一毛片 | 来吧亚洲综合网 | 欧美精品区 | 亚洲精品五月 | 国产a级网站 | 无码人妻精品一区二区三应用大全 | 国产乱论 | 成人午夜视频免费在线观看 | 日本一区二区不卡在线 | 北条麻妃一区二区三区在线观看 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 国产精品国产馆在线真实露脸 | 日本少妇激情视频 | 欧洲视频在线观看 | 深夜成人福利 | 视频成人免费 | 日本在线天堂 | 少妇人妻无码专区视频 | 91视频www| 挪威xxxx性hd极品 | 青青青国产 | 18色av| 特级淫片裸体免费看冫 | 午夜aaa片一区二区专区 | 丰满少妇被猛烈进入一区二区 | 久久精品店 | 爆操91| 亚洲精品不卡 | 欧美影院一区二区 | 国产妇女馒头高清泬20p多 | 伊人称影院 | jizzjizzjizz国产| 在线成人一区二区 | 亚洲欧美va天堂人熟伦 | 日本xxxwww| 国产成人亚洲欧洲在线 | 色老头综合网 | 国产jizz18女人高潮 | 久久99这里只有精品 | 色窝窝无码一区二区三区 | 新超碰在线 | 久久av网站 | 五十路六十路 | 青青草狠狠操 | 深夜网站在线 | 欧美性猛交69 | 成人调教视频 |