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

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

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

    posts - 78, comments - 34, trackbacks - 0, articles - 1
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    2009-12-03休息 JAVA IO

    Posted on 2009-12-03 22:48 長(zhǎng)城 閱讀(398) 評(píng)論(0)  編輯  收藏

             我對(duì)IO流的理解上并沒(méi)什么問(wèn)題,但前一片段上課時(shí)有經(jīng)常使用到IO流。發(fā)現(xiàn)自己對(duì)JAVAIO流沒(méi)有系統(tǒng)的概念,JAVAIO流的要類是InputStreamOutputStream,這兩個(gè)類的子類較多,而且還有一部分的包裝類。SO,我要對(duì)JAVAIO流有一個(gè)系統(tǒng)的學(xué)習(xí)。

    JAVA IO 全視圖:

    JAVAIO 

    InputStream部分:

             InputStream,它是一個(gè)抽象類,所示所有輸入流的的超類。它包含了輸入流的基本操作。

             AudioIntpuStream,音頻輸入流對(duì)應(yīng)的輸出。結(jié)合AudioSystem可以實(shí)現(xiàn):

    1.        從外部音頻文件、流或 URL 獲得音頻輸入流

    2.        從音頻輸入流寫(xiě)入外部文件

    3.        將音頻輸入流轉(zhuǎn)換為不同的音頻格式

    ByteArrayInputStream,字節(jié)數(shù)據(jù)輸入流。字面的翻譯。它包含了一個(gè)緩沖區(qū),該緩沖區(qū)從輸入游戲中讀取字節(jié)。因?yàn)閿?shù)據(jù)已經(jīng)讀入到緩沖區(qū)中,所以關(guān)閉流對(duì)它無(wú)效,仍然可以調(diào)用它的方法而不會(huì)拋出異常。

    FileInputStream,文件輸入流。從文件中獲取輸入字節(jié),包含對(duì)文件流的特殊方法。如果要讀取字符流,可以使用FileReader

    PipedInputStream,管道輸入流。用于線程間的通訊,但不要在同一個(gè)線程中使用管道輸入流和輸出流,這樣可能造成線程死鎖。

    SequenceInputStream,輸入流的邏輯串聯(lián)。它將多個(gè)輸入流串聯(lián)到一起讀取。比如它串聯(lián)了輸入流AB,當(dāng)讀取到A的結(jié)尾時(shí),便從B流中接著讀取。

    StringBufferInputStream,與ByteArrayInputSteam類同,ByteArrayInputStream用于處理字節(jié),而StringBufferInputStream用于處理字符。

    ObjectInputStreamJava對(duì)象輸入流。實(shí)現(xiàn)將對(duì)象從輸入流中讀取。比如將ObjectOutputStreamFileOutputStream結(jié)合使用,將JAVA對(duì)象序列化后保存到文件。然后再使用FileInputStreamObjectInputStream將文件中被序列化的JAVA對(duì)象反序列化回來(lái)到程序中。也可以在遠(yuǎn)程通訊中使用對(duì)象流傳輸JAVA對(duì)象,這個(gè)比較高級(jí)。

    FilterInputStreamJDK幫助文檔中說(shuō)它只是簡(jiǎn)單的重寫(xiě)將所有對(duì)輸入流的操作傳遞給它所包含的InputStream輸入流。嗯,其實(shí)它是一個(gè)Decorate模式的超類。從它繼承了一些子類,用于提供一些額外的功能,向下看。

             BufferedInputStream,對(duì)InputStream增加了緩存功能。以更好的支持markreset方法。

    CheckedInputStream,校驗(yàn)輸入流。可用于驗(yàn)證輸入數(shù)據(jù)的完整性。與Checksum配合使用。

    CipherInputStream,解密輸入流。與Cipher配合使用。CipherOutputStream是加密輸出流。對(duì)數(shù)據(jù)進(jìn)行加解密使用。

    DigestInputStream,摘要輸入流。這個(gè)比較少見(jiàn),棱一看JDK手冊(cè),不太了解。不過(guò)數(shù)據(jù)摘要是用于安全通訊或數(shù)據(jù)完整證驗(yàn)證的。哦,它與MessageDigest配合使用,可見(jiàn)JAVA IO設(shè)計(jì)者的用心!

    LineNumberInputStream,行號(hào)輸入流。此類已過(guò)時(shí)。它假定輸入流是字符流,它調(diào)用InputStream的方法并將\n\r統(tǒng)一轉(zhuǎn)換成一個(gè)\n。每讀到一個(gè)換行時(shí),便將行號(hào)加1,初始行號(hào)為0。此類不深入研究了!

    ProgressMonitor,進(jìn)度監(jiān)視輸入流。用于監(jiān)視用戶讀取的進(jìn)度,如果這個(gè)流很大。它會(huì)自動(dòng)彈出進(jìn)度提示窗口,用戶可以點(diǎn)擊“Cancel”按鈕,取消讀取。這個(gè)也實(shí)JAVAIO給實(shí)現(xiàn)了,比較人性化!

    PushBackInputStream,推回輸入流。就是可以將從輸入流中讀取的數(shù)據(jù),調(diào)用unread方法將數(shù)據(jù)推回到輸入流中,也可以將其他數(shù)據(jù)推進(jìn)去。JDK手冊(cè)中舉了一個(gè)例子說(shuō),將標(biāo)識(shí)符字符讀取后,可以推回到輸入然,然后重復(fù)讀取,在哪里需要這樣的應(yīng)用呢?

    DataInputStream,數(shù)據(jù)輸入流。可以以與機(jī)器無(wú)關(guān)方式從底層輸入流中讀取基本JAVA數(shù)據(jù)類型。

    InflaterInputStream 解壓縮輸入流。解壓縮以“deflate”壓縮格式的流過(guò)濾器。它與Inflater配合使用,Inflater使用流行的ZLIB壓縮庫(kù)。

             GZipInputStreamGZip解壓縮輸入流。解壓縮以“GZip”壓縮格式的流過(guò)濾器。

             ZipInputStreamZip解壓縮輸入流。解壓縮以“Zip”壓縮格式的流過(guò)濾器。

             JarInputStreamJar解壓縮輸入流。可以讀取Jar文件中的內(nèi)容。其實(shí)Jar的壓縮格式就是Zip格式。但它比Zip多了一個(gè)Manifest條目。Manifest 可用于存儲(chǔ)有關(guān) JAR 文件及其條目的元信息。關(guān)于Manifest,可以查看JDK手冊(cè)。

             OKOutputStream在此就不一一列出了。因?yàn)?/span>OutpuStream中子類與InputStream中的子類相對(duì)應(yīng)。但OutpuStream不完全具有與InputStream中的子類對(duì)應(yīng)的類。因?yàn)闆](méi)必要,比如AudioInputStream,沒(méi)有與之對(duì)應(yīng)的AudioOutputStream,我們需要讀取指定格式的音頻即可。如果想寫(xiě)出音頻數(shù)據(jù)直接用FileOutputStream即可!        

             Java中還有WriterReader兩個(gè)超類,主要用于處理字符流,這個(gè)比較簡(jiǎn)單就不在此做介紹了。OK


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国产91色综合久久免费分享| 亚洲av无码一区二区三区人妖| 亚洲国产三级在线观看| 亚洲成AV人在线观看网址| 国产精品美女自在线观看免费| 成人免费男女视频网站慢动作| 日本亚洲免费无线码| 黄网站色在线视频免费观看| 1000部夫妻午夜免费| 啦啦啦完整版免费视频在线观看| 久久精品无码精品免费专区| 青青草原1769久久免费播放| 日韩电影免费在线观看| 蜜桃视频在线观看免费视频网站WWW | 精品一区二区三区高清免费观看| 男人和女人高潮免费网站| 曰韩无码AV片免费播放不卡| sss在线观看免费高清| 色www永久免费网站| 男人都懂www深夜免费网站| 最好看最新的中文字幕免费| 18禁免费无码无遮挡不卡网站 | 久久久久女教师免费一区| a毛片免费播放全部完整| 无码国产精品一区二区免费vr| 99久久99久久精品免费观看 | 亚洲精品视频免费 | 亚洲成av人片在线天堂无| 国产亚洲精品成人久久网站| 一级做a毛片免费视频| 嫩草在线视频www免费看| 91成人在线免费视频| 成熟女人牲交片免费观看视频| 青青草国产免费久久久91| 亚洲国产精品综合久久网络| 国产精一品亚洲二区在线播放| 久久久久亚洲精品日久生情| 亚洲一本一道一区二区三区| 日韩成人毛片高清视频免费看| 中文字幕免费不卡二区| 亚洲欧洲免费无码|