<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 5,comments - 0,trackbacks - 0

    一個程序經常需要從外部獲取信息,或者向外部發送信息2005年10月26日。信息可以在任何地方:在一個文件中,在磁盤上,在網絡上的某個地方,內存中,或者在另外一個程序中。  同時,信息可以是任何類型:對象,字符,圖形,或者聲音, 這一節包括了Java? 平臺中可以用來讀寫的類。

    overview of  i/o Streams
      
    要得到信息,程序在源數據上打開一個流(文件,內存,socket),然后順序讀入數據,如下圖所示:

     
    19stream.gif

    同樣,程序可以通過打開一個文件流向目標發送信息:
    20stream2.gif

    無論數據來自哪里或者向哪發送,無論是何種類型,讀寫數據的規則是一樣的:
        Reading  Writing
    open a stream
    while more information
    read information
    close the stream
    




     open a stream
     while more information
     write information
     close the stream
    

    java.io.*包 文件流類的集合,支持這些讀寫的規則,。 使用這些類,程序需要import java.io.*。文件流類可以分為兩個類層次,以所處理的數據類型(字符或字節)為基礎。
    21chstream.gif

    字符流
    Reader和Writer是java.io.包里面字符流的兩個抽象類。 Reader類提供了readers--stream 讀取16-bit字符的API和部分實現,,Writer提供了writers--streams 寫入16-bit字符的api和部分實現。Reader和Writer的子類分為兩類:從data sink中讀寫的類(黑色),和數據處理類(白色)
    23reader.gif
    24writer.gif
    大部分應用程序應該用reader和writer來讀寫文本信息。原因是他們可以處理Unicode中字符集
    總的任何字符,而字節流只能處理 iso-Latin-1 8-bit字節。 

    字節流
        為了讀寫8-bit字節,程序應該使用字節流,InputStream和OutputStream的子類,InputStream和OutputStream提供了input streams(streams that read 8-bit bytes),output streams(streams that write 8-bit bytes)的api和部分實現,這些流典型的用來讀寫二進制數據,像圖像,聲音。 其中字節流的兩個類,ObjectInputStream,ObjectOutputStream用于對象的序列化,These classes are covered in
    Object Serialization
        就像Reader和Writer類,,InputStream和OutputStream的子類也分為兩類,數據接收流(陰影)和數據處理流
    25inputs.gif
    26outputs.gif
    理解  i/o 超類
    Reader和InputStream定義了相似的APIs,,只是針對的data type不同。例如,Reader 包含了以下讀取字符和字符數組的方法:
          int read()
          int read(char cbuf[])
          int read(char cbuf[], int offset,int length)
    InputStream 定義了相同的方法,用來讀取字節和字節數組
          int read()
          int read(char cbuf[])
          int read(char cbuf[], int offset,int length)
    同樣的,Reader和InputStream提供一些相似的方法,例如在流中作標記,skipping input,重置當前position。

    Writer和OutputStream也是相似的:

    int write(int c)
    int write(char cbuf[])
    int write(char cbuf[], int offset, int length)
    

    And OutputStream defines the same methods but for bytes:

    int write(int c)
    int write(byte cbuf[])
    int write(byte cbuf[], int offset, int length)
















    所有這些流,readers, writers, input streams, and output streams---在創建的時候自動打開,可以調用他們的
    關閉方法關閉他們,或者黨對象不再使用時由垃圾回收機制回收。

    posted on 2005-10-26 15:27 blackdead - Life is sad 閱讀(216) 評論(0)  編輯  收藏 所屬分類: java技術

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲成AV人片天堂网无码| 亚洲欧洲中文日韩av乱码| 亚洲视频日韩视频| 99久久免费观看| 亚洲综合久久综合激情久久| 午夜视频免费在线观看| 久久亚洲AV成人无码电影| 十八禁无码免费网站| 亚洲视频一区网站| 在线观看特色大片免费视频| 久久精品国产亚洲αv忘忧草| 国产免费女女脚奴视频网| 男人天堂2018亚洲男人天堂| 影音先锋在线免费观看| 亚洲av无码专区亚洲av不卡| 四虎影在线永久免费观看| 国产激情久久久久影院老熟女免费| 国产av无码专区亚洲国产精品| 久久久久国色AV免费观看| 亚洲a一级免费视频| 免费h片在线观看网址最新| 亚洲一本一道一区二区三区| 免费在线观看一级毛片| 成人片黄网站色大片免费观看APP| 亚洲精品免费在线观看| 最近中文字幕mv免费高清视频7 | 午夜免费福利在线| 色屁屁www影院免费观看视频| 精品国产亚洲男女在线线电影 | 男女啪啪永久免费观看网站| 日韩版码免费福利视频| 亚洲熟女精品中文字幕| 毛茸茸bbw亚洲人| 成人浮力影院免费看| 男女啪啪免费体验区| 亚洲国产精品婷婷久久| 午夜神器成在线人成在线人免费| 九九九国产精品成人免费视频| 亚洲午夜久久久久久久久久| 国产精品视频免费| 九九热久久免费视频|