程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java的輸出流

java的輸出流

編輯:關於JAVA

兩類主要的輸出流是按它們寫入數據的方式劃分的:一種按人的習慣寫入,另一種為了以後由一個DataInputStream而寫入。RandomAccessFile是獨立的,盡管它的數據格式兼容於DataInputStream和DataOutputStream。

5. 保存與恢復數據
PrintStream能格式化數據,使其能按我們的習慣閱讀。但為了輸出數據,以便由另一個數據流恢復,則需用一個DataOutputStream寫入數據,並用一個DataInputStream恢復(獲取)數據。當然,這些數據流可以是任何東西,但這裡采用的是一個文件,並進行了緩沖處理,以加快讀寫速度。
注意字串是用writeBytes()寫入的,而非writeChars()。若使用後者,寫入的就是16位Unicode字符。由於DataInputStream中沒有補充的“readChars”方法,所以不得不用readChar()每次取出一個字符。所以對ASCII來說,更方便的做法是將字符作為字節寫入,在後面跟隨一個新行;然後再用readLine()將字符當作普通的ASCII行讀回。
writeDouble()將double數字保存到數據流中,並用補充的readDouble()恢復它。但為了保證任何讀方法能夠正常工作,必須知道數據項在流中的准確位置,因為既有可能將保存的double數據作為一個簡單的字節序列讀入,也有可能作為char或其他格式讀入。所以必須要麼為文件中的數據采用固定的格式,要麼將額外的信息保存到文件中,以便正確判斷數據的存放位置。

6. 讀寫隨機訪問文件
正如早先指出的那樣,RandomAccessFile與IO層次結構的剩余部分幾乎是完全隔離的,盡管它也實現了DataInput和DataOutput接口。所以不可將其與InputStream及OutputStream子類的任何部分關聯起來。盡管也許能將一個ByteArrayInputStream當作一個隨機訪問元素對待,但只能用RandomAccessFile打開一個文件。必須假定RandomAccessFile已得到了正確的緩沖,因為我們不能自行選擇。
可以自行選擇的是第二個構建器參數:可決定以“只讀”(r)方式或“讀寫”(rw)方式打開一個RandomAccessFile文件。
使用RandomAccessFile的時候,類似於組合使用DataInputStream和DataOutputStream(因為它實現了等同的接口)。除此以外,還可看到程序中使用了seek(),以便在文件中到處移動,對某個值作出修改。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved