国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java IO

Salamander / 1697人閱讀

摘要:分類一按操作方式類結(jié)構(gòu)字節(jié)流和字符流字節(jié)流以字節(jié)為單位,每次次讀入或讀出是位數(shù)據(jù)。該對象并不是流體系中的一員,其封裝了字節(jié)流,同時還封裝了一個緩沖區(qū)字符數(shù)組,通過內(nèi)部的指針來操作字符數(shù)組中的數(shù)據(jù)。

分類一:按操作方式(類結(jié)構(gòu))

字節(jié)流和字符流:

字節(jié)流:以字節(jié)為單位,每次次讀入或讀出是8位數(shù)據(jù)。可以讀任何類型數(shù)據(jù)。

字符流:以字符為單位,每次次讀入或讀出是16位數(shù)據(jù)。其只能讀取字符類型數(shù)據(jù)。

輸出流和輸入流:

輸出流:從內(nèi)存讀出到文件。只能進行寫操作。

輸入流:從文件讀入到內(nèi)存。只能進行讀操作。

節(jié)點流和處理流:

節(jié)點流:直接與數(shù)據(jù)源相連,讀入或讀出。

處理流:與節(jié)點流一塊使用,在節(jié)點流的基礎(chǔ)上,再套接一層,套接在節(jié)點流上的就是處理流。

為什么要有處理流?直接使用節(jié)點流,讀寫不方便,為了更快的讀寫文件,才有了處理流。

輸入字節(jié)流InputStream:

三種基本的節(jié)點流:FileInputStream、ByteArrayInputStream、PipedInputStream

四個處理流:ObjectInputStream 和所有FilterInputStream 的子類DataInputStreamBufferedInputStream、SequenceInputStream

輸出字節(jié)流OutputStream:

同上

字節(jié)流的輸入和輸出對照圖:

字符輸入流Reader:

CharArrayReaderStringReader 是兩種基本的介質(zhì)流,它們分別將 Char 數(shù)組、String中讀取數(shù)據(jù)。

BufferedReader 很明顯就是一個裝飾器,它和其子類負責(zé)裝飾其它 Reader 對象。

PipedReader:是從與其它線程共用的管道中讀取數(shù)據(jù)

FilterReader 是所有自定義具體裝飾流的父類,其子類PushbackReader 對 Reader 對象進行裝飾,會增加一個行號。

InputStreamReader: 是一個連接字節(jié)流和字符流的橋梁,它將字節(jié)流轉(zhuǎn)變?yōu)樽址鳌?/strong>FileReader可以說是一個達到此功能、常用的工具類,在其源代碼中明顯使用了將FileInputStream 轉(zhuǎn)變?yōu)?Reader 的方法。我們可以從這個類中得到一定的技巧。Reader 中各個類的用途和使用方法基本和 InputStream 中的類使用一致。

字符輸出流Writer

CharArrayWriter、StringWriter 是兩種基本的介質(zhì)流,它們分別向 Char 數(shù)組、String 中寫入數(shù)據(jù)。

PipedWriter: 是向與其它線程共用的管道中寫入數(shù)據(jù)

BufferedWriter 是一個裝飾器,為 Writer 提供緩沖功能。

PrintWriter 和 PrintStream 極其類似,功能和使用也非常相似。

OutputStreamWriter: 是OutputStream 到 Writer 轉(zhuǎn)換的橋梁,它的子類FileWriter,其實就是一個實現(xiàn)此功能的具體類,功能和使用和OutputStream極其類似

字符流的輸入和輸出對照圖

..]

字符流與字節(jié)流轉(zhuǎn)換

轉(zhuǎn)換流的特點:

字符流和字節(jié)流之間的橋梁

可對讀取到的字節(jié)數(shù)據(jù)經(jīng)過指定編碼轉(zhuǎn)換成字符

可對讀取到的字符數(shù)據(jù)經(jīng)過指定編碼轉(zhuǎn)換成字節(jié)

何時使用轉(zhuǎn)換流?

當(dāng)字節(jié)和字符之間有轉(zhuǎn)換動作時

流操作的數(shù)據(jù)需要編碼或解碼時

OutputStreamWriter:輸出流轉(zhuǎn)到寫流

</>復(fù)制代碼

  1. String fileName= "hello.txt";
  2. try {
  3. Writer out=new OutputStreamWriter(
  4. new FileOutputStream(
  5. new File(fileName)));
  6. try {
  7. out.write("hello");
  8. }catch (IOException e){
  9. e.printStackTrace();
  10. }finally {
  11. out.close();
  12. }
  13. }catch (IOException e){
  14. e.printStackTrace();
  15. }

InputStreamReader:輸入流轉(zhuǎn)到讀流

</>復(fù)制代碼

  1. try {
  2. Reader read=new InputStreamReader(
  3. new FileInputStream(new File(fileName)));
  4. try {
  5. BufferedReader reader = new BufferedReader(read);
  6. String s;
  7. while ((s = reader.readLine()) != null){
  8. System.out.println(s);
  9. }
  10. }catch (IOException e){
  11. e.printStackTrace();
  12. }finally {
  13. read.close();
  14. }
  15. }catch (IOException e){
  16. e.printStackTrace();
  17. }

這兩個流對象是字符體系中的成員,它們有轉(zhuǎn)換作用,本身又是字符流,所以在構(gòu)造的時候需要傳入字節(jié)流對象進來。

分類二:按操作對象

對文件進行操作(節(jié)點流):

FileInputStream(字節(jié)輸入流)

FileOutputStream(字節(jié)輸出流)

FileReader(字符輸入流)

FileWriter(字符輸出流)

對管道進行操作(節(jié)點流):

PipedInputStream(字節(jié)輸入流)

PipedOutStream(字節(jié)輸出流):PipedInputStream的一個實例要和PipedOutputStream的一個實例共同使用,共同完成管道的讀取寫入操作。主要用于線程操作。

PipedReader(字符輸入流)

PipedWriter(字符輸出流)

字節(jié)/字符數(shù)組流(節(jié)點流):

ByteArrayInputStream

ByteArrayOutputStream

CharArrayReader

CharArrayWriter

Buffered緩沖流(處理流):是帶緩沖區(qū)的處理流,緩沖區(qū)的作用的主要目的是:避免每次和硬盤打交道,提高數(shù)據(jù)訪問的效率。

BufferedInputStream

BufferedOutputStream

BufferedReader

BufferedWriter

轉(zhuǎn)化流(處理流):

InputStreamReader:把字節(jié)轉(zhuǎn)化成字符

OutputStreamWriter:把字節(jié)轉(zhuǎn)化成字符

基本類型數(shù)據(jù)流(處理流):用于操作基本數(shù)據(jù)類型值

DataInputStream

DataOutputStream。

因為平時若是我們輸出一個8個字節(jié)的long類型或4個字節(jié)的float類型,那怎么辦呢?可以一個字節(jié)一個字節(jié)輸出,也可以把轉(zhuǎn)換成字符串輸出,但是這樣轉(zhuǎn)換費時間,若是直接輸出該多好啊,因此這個數(shù)據(jù)流就解決了我們輸出數(shù)據(jù)類型的困難。數(shù)據(jù)流可以直接輸出float類型或long類型,提高了數(shù)據(jù)讀寫的效率。

打印流(處理流):一般是打印到控制臺,可以進行控制打印的地方。

PrintStream

PrintWriter

對象流(處理流):把封裝的對象直接輸出,而不是一個個在轉(zhuǎn)換成字符串再輸出。

ObjectInputStream,對象反序列化

ObjectOutputStream,對象序列化

合并流(處理流):

SequenceInputStream:可以認為是一個工具類,將兩個或者多個輸入流當(dāng)成一個輸入流依次讀取。

File

File類是對文件系統(tǒng)中文件以及文件夾進行封裝的對象,可以通過對象的思想來操作文件和文件夾。

File類保存文件或目錄的各種元數(shù)據(jù)信息,包括文件名、文件長度、最后修改時間、是否可讀、獲取當(dāng)前文件的路徑名,判斷指定文件是否存在、獲得當(dāng)前目錄中的文件列表,創(chuàng)建、刪除文件和目錄等方法。

RandomAccessFile

該對象并不是IO流體系中的一員,其封裝了字節(jié)流,同時還封裝了一個緩沖區(qū)(字符數(shù)組),通過內(nèi)部的指針來操作字符數(shù)組中的數(shù)據(jù)。 該對象特點:

該對象只能操作文件,所以構(gòu)造函數(shù)接收兩種類型的參數(shù):a.字符串文件路徑;b.File對象。

該對象既可以對文件進行讀操作,也能進行寫操作,在進行對象實例化時可指定操作模式(r,rw)

注意:

該對象在實例化時,如果要操作的文件不存在,會自動創(chuàng)建;如果文件存在,寫數(shù)據(jù)未指定位置,會從頭開始寫,即覆蓋原有的內(nèi)容。可以用于多線程下載或多個線程同時寫數(shù)據(jù)到文件。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/68016.html

相關(guān)文章

  • Java編程基礎(chǔ)21——IO(字節(jié)流)

    摘要:流按操作類型分為兩種字節(jié)流字節(jié)流可以操作任何數(shù)據(jù)因為在計算機中任何數(shù)據(jù)都是以字節(jié)的形式存儲的字符流字符流只能操作純字符數(shù)據(jù),比較方便。 1_IO流概述及其分類 1.概念 IO流用來處理設(shè)備之間的數(shù)據(jù)傳輸 Java對數(shù)據(jù)的操作是通過流的方式 Java用于操作流的類都在IO包中 流按流向分為兩種:輸入流,輸出流。 流按操作類型分為兩種: 字節(jié)流 : 字節(jié)流可以操作任何數(shù)據(jù),因為在...

    yanbingyun1990 評論0 收藏0
  • Java編程基礎(chǔ)22——IO(字符流)&字符流其他內(nèi)容&遞歸

    摘要:字符流字符流是什么字符流是可以直接讀寫字符的流字符流讀取字符就要先讀取到字節(jié)數(shù)據(jù)然后轉(zhuǎn)為字符如果要寫出字符需要把字符轉(zhuǎn)為字節(jié)再寫出類的方法可以按照字符大小讀取通過項目默認的碼表一次讀取一個字符賦值給將讀到的字符強轉(zhuǎn)后打印字符流類的方法可以 1_字符流FileReader 1.字符流是什么 字符流是可以直接讀寫字符的IO流 字符流讀取字符, 就要先讀取到字節(jié)數(shù)據(jù), 然后轉(zhuǎn)為字符. ...

    BoYang 評論0 收藏0
  • Java IO之NIO

    摘要:上篇說了最基礎(chǔ)的五種模型,相信大家對相關(guān)的概念應(yīng)該有了一定的了解,這篇文章主要講講基于多路復(fù)用的。 上篇說了最基礎(chǔ)的五種IO模型,相信大家對IO相關(guān)的概念應(yīng)該有了一定的了解,這篇文章主要講講基于多路復(fù)用IO的Java NIO。 背景 Java誕生至今,有好多種IO模型,從最早的Java IO到后來的Java NIO以及最新的Java AIO,每種IO模型都有它自己的特點,詳情請看我的上...

    pingink 評論0 收藏0
  • Fabric學(xué)習(xí)筆記(七) - fabric-sdk-java End2endIT運行

    摘要:目的因最熟悉故最后還是拿做突破口學(xué)習(xí)本文只運行功能以后具體在分析運行環(huán)境網(wǎng)絡(luò)遠程本地遠程下載運行網(wǎng)絡(luò)核查網(wǎng)絡(luò)是否啟動成功這一步我遇到的問題是未啟動成功原因在于中這 目的 因最熟悉java,故最后還是拿java做突破口學(xué)習(xí)sdk,本文只運行demo,sdk功能以后具體在分析. 運行環(huán)境 Fabric網(wǎng)絡(luò) 遠程Centos Fabric-sdk-java 本地MacOs Intellij...

    mzlogin 評論0 收藏0
  • Netty ByteBuf 誰負責(zé)誰釋放

    摘要:轉(zhuǎn)發(fā)自 轉(zhuǎn)發(fā)自 http://netty.io/wiki/referenc... Since Netty version 4, the life cycle of certain objects are managed by their reference counts, so that Netty can return them (or their shared resources)...

    Lyux 評論0 收藏0
  • Java IO初探

    Java IO對大多數(shù)Java程序員來說是熟悉又陌生,熟悉的是感覺到處都有它的身影,小到簡單的讀取文件,大到各種服務(wù)器的應(yīng)用,陌生的是Java IO背后到底是一個怎樣的機制,今天就讓我們?nèi)チ私庖幌逻@位老朋友吧。本文不講解Java IO如何具體使用,有這方面需求的同學(xué)可以自己查下。 IO模型 要說IO,就不得不說IO模型,IO模型大家都有所了解,同步異步,阻塞非阻塞什么的,總的來說IO模型可分為以下...

    edgardeng 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<