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

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

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

    FORTUNE

    THE WAY TO THE MASTER...
    posts - 49, comments - 18, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    java 流與文件

    Posted on 2006-03-14 16:13 fortune 閱讀(1666) 評論(2)  編輯  收藏 所屬分類: 我的學習筆記
    在java中可以讀出一系列字節的對象稱為“輸入流”,而能向其寫入一系列字節的對象稱為“輸出流”。這2種對象分別是用抽象類InputStream和OutputStream來實現的。對于Unicode格式保存的信息(每個字符都用了2個字節來存儲),有專門的類處理,這些類是從抽象類Reader和Writer繼承而來。

    java以這4個抽象類為基礎,衍生出一系列具體的類,幾乎可以完成所有的輸入/輸出過程。

    InputStream類提供了一個抽象方法:abstract    int    read()
    讀取一個字節并將它返回,由此類衍生出來的其它具體類都會覆蓋這個方法,以提供有用的功能。
    類似的,OutputStream類定義了抽象方法abstract    int    write(int  b)

    完成流的讀寫操作后應記住要用close()方法將其關閉。關閉輸出流的同時也會刷新輸出流使用的緩沖區:在緩沖區中等待組合成一個較大的數據包的臨時存儲的字符,都會通過網絡傳送出去。特別是,加入沒有關閉一個文件,最后一個字節報可能永遠都不會投遞出去。

    InputStream和OutputStream類允許我們讀取單獨的字節和字節數組,它們不對字符串及數字進行讀寫。DataInputStream和DataOutputStream允許對所有基本java類型進行讀寫。
    對于Unicode文本,需使用Reader和Writer衍生出的類,它提供的基本方法和InputStream和OutputStream類似:abstract    int    read()
             abstract    int    write(int  b)
    read方法返回的要么是個Unicode字符(0-65535間的一個整數)要么是-1(已抵達文件末尾)
    無論是read還是write方法都會阻塞線程的運行,直到字節被實際讀出或寫入為止。利用available方法,我們可以檢查目前能夠讀取的字節數。

    int   byteAvailable     =    System.in.available();
    if   (byteAvailable  〉 0)
    {byte[]   data  =  new byte [byteAvailable];
       System.in.read(data);
    }

    FileInputStream 和 FileOutputStream 使我們能將磁盤文件和輸入流及輸出流關聯起來。
    FileInputStream fin = new FileInputStream("employee.dat");
    也可以
    File f = new File("employee.dat");
    FileInputStream fin = new FileInputStream(f);

    與InputStream and OutputStream 類似, 它也僅支持字節級的讀寫操作,只能從fin對象中讀取字節和字節數組:byte b = (byte) fin.read();

    FileOutputStream(String name)新建一個name指定的文件輸出流,該方法會自動刪除同名的任何現存文件?。。?BR>
    文本流

    二進制的輸入輸出速度很快效率很高但是人無法看懂這種格式。java使用的是Unicode字符

    File, File(Input/Output)Stream, RandomAccessFile是處理本地文件的類

    Data(Input/Output)Stream是一個過濾流的子類,借此可以讀寫各種基本數據, 在文件和網絡中經常使用.如: readByte, writeBoolean等.

    Buffered(Input/Output)Stream的作用是在數據送到目的之前先緩存,達到一定數量時再送到目的,用已減少阻塞次數.

    Piped(Input/Output)Stream適合與一個處理的輸出作為另一個處理的輸入的情況



     
    !要想以二進制格式寫入數據,使用DataOutputStream,要想以文本格式寫入數據,使用PrintWriter
    二進制讀入使用DataInputStream,可讀取文本格式的數據Java并未提供這樣的類。唯一用來處理文本輸入的是BufferedReader類它包含了一個方法readLine。




    評論

    # re: java 流與文件  回復  更多評論   

    2006-03-15 13:10 by 余靈
    寫的好經典啊`對我學習JAVA的人來說真是太有幫助了,謝謝樓豬

    # re: java 流與文件  回復  更多評論   

    2008-04-18 09:23 by Lianyisha
    確實總結的特別好,受益了。謝謝樓主
    主站蜘蛛池模板: 亚洲无码精品浪潮| 亚洲国产精品成人一区| 久久精品国产亚洲麻豆| 日本高清不卡中文字幕免费| 国产又大又黑又粗免费视频| 在线观看日本亚洲一区| 日韩亚洲国产高清免费视频| 亚洲白色白色在线播放| 真人做A免费观看| 亚洲福利在线视频| 久久99国产乱子伦精品免费| 亚洲国产精品嫩草影院在线观看| 免费高清A级毛片在线播放| 成人免费无码大片A毛片抽搐| 久久亚洲精品专区蓝色区| 免费人成在线观看网站品爱网| 国产日韩亚洲大尺度高清| 国产永久免费高清在线| 亚洲欧洲无码AV电影在线观看 | 亚洲国产日韩成人综合天堂| 最新亚洲卡一卡二卡三新区| 午夜性色一区二区三区免费不卡视频 | 黄瓜视频影院在线观看免费| 亚洲成人福利网站| 成人免费一级毛片在线播放视频 | 美女视频黄视大全视频免费的| 亚洲国产午夜中文字幕精品黄网站| 九九视频高清视频免费观看| 国产成人亚洲精品青草天美| 亚欧免费无码aⅴ在线观看| 亚洲成人午夜电影| 国产精品久久久久免费a∨| 亚洲日韩国产欧美一区二区三区 | 永久亚洲成a人片777777| 国产做国产爱免费视频| 国产亚洲精品AA片在线观看不加载 | 野花香高清在线观看视频播放免费| 7777久久亚洲中文字幕蜜桃| 卡一卡二卡三在线入口免费| 成年免费a级毛片免费看无码| 亚洲同性男gay网站在线观看|