<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成人精品日韩一区| 成人性生交视频免费观看| 亚洲人成网站色7799| 国产禁女女网站免费看| 黄色免费网址在线观看| 不卡一卡二卡三亚洲| A级毛片成人网站免费看| 国产亚洲精品精华液| 免费在线看黄网站| 亚洲精品自在线拍| 成人免费AA片在线观看| 亚洲色偷偷色噜噜狠狠99| 全部免费a级毛片| 女人隐私秘视频黄www免费| 亚洲AV无码精品色午夜在线观看| 久久久久高潮毛片免费全部播放| 久久精品国产亚洲AV麻豆网站| 91在线视频免费91| 看全免费的一级毛片| 亚洲国产精品无码专区| 亚洲免费电影网站| 亚洲AV成人无码网天堂| 亚洲一区二区女搞男| 69精品免费视频| 最新亚洲人成无码网www电影| 中文字幕在亚洲第一在线 | 亚洲国产一区明星换脸| 国产一级婬片A视频免费观看| 精品亚洲成a人片在线观看| 女人18毛片水真多免费看| 国产男女爽爽爽免费视频| 亚洲自偷自偷精品| 日本免费网站在线观看| 日韩电影免费在线观看网站| 亚洲va在线va天堂成人| 亚洲一区二区三区免费| 国产h视频在线观看网站免费| 美女黄网站人色视频免费|