現在假設我們想觀看一個目錄列表。可用兩種方式列出File對象。若在不含自變量(參數)的情況下調用list(),會獲得File對象包含的一個完整列表
File類並不僅僅是對現有目錄路徑、文件或者文件組的一個表示。亦可用一個File對象新建一個目錄,甚至創建一個完整的目錄路徑—&mda
盡管庫內存在大量IO流類,可通過多種不同的方式組合到一起,但實際上只有幾種方式才會經常用到。然而,必須小心在意才能得到正確的組合。下面這個相當長的
當然,我們經常想做的一件事情是將格式化的輸出打印到控制台,但那已在第5章創建的com.bruceeckel.tools中得到了簡化。第1到第4部分
兩類主要的輸出流是按它們寫入數據的方式劃分的:一種按人的習慣寫入,另一種為了以後由一個DataInputStream而寫入。RandomAcces
由於以前采用的一些典型形式都涉及到文件處理,所以大家也許會懷疑為什麼要進行那麼多的代碼輸入——這正是裝飾器方案一個缺點。本
以Unix首先倡導的“標准輸入”、“標准輸出”以及“標准錯誤輸出”概念為基
盡管StreamTokenizer並不是從InputStream或OutputStream衍生的,但它只隨同InputStream工作,所以十分恰
盡管並不必要IO庫的一部分,但StringTokenizer提供了與StreamTokenizer極相似的功能,所以在這裡一並講述。StringT
到這個時候,大家或許會陷入一種困境之中,懷疑是否存在IO流的另一種設計方案,並可能要求更大的代碼量。還有人能提出一種更古怪的設計嗎?事實上,Jav
Java 1.0的幾乎所有IO流類都有對應的Java 1.1類,用於提供內建的Unicode管理。似乎最容易的事情就是“全部使用新類,
在Java 1.0中,數據流通過FilterInputStream和FilterOutputStream的“裝飾器”(De
為體驗新類的效果,下面讓我們看看如何修改IOStreamDemo.java示例的相應區域,以便使用Reader和Writer類: //:
Java 1.1在System類中添加了特殊的方法,允許我們重新定向標准輸入、輸出以及錯誤IO流。此時要用到下述簡單的靜態方法調用:setIn(I
Java 1.1也添加一個類,用以支持對壓縮格式的數據流的讀寫。它們封裝到現成的IO類中,以提供壓縮功能。此時Java 1.1的一個問題顯得非常突
java的GZIP接口非常簡單,所以如果只有單個數據流需要壓縮(而不是一系列不同的數據),那麼它就可能是最適當選擇。下面是對單個文件進行壓縮的例子
提供了Zip支持的Java 1.1庫顯得更加全面。利用它可以方便地保存多個文件。甚至有一個獨立的類來簡化對Zip文件的讀操作。這個庫采采用的是標准
Zip格式亦在Java 1.1的JAR(Java ARchive)文件格式中得到了采用。這種文件格式的作用是將一系列文件合並到單個壓縮文件裡,就象
Java 1.1增添了一種有趣的特性,名為“對象序列化”(Object Serialization)。它面向那些實現了Se
讀者或許會奇怪為什麼需要一個對象從它的序列化狀態中恢復。舉個例子來說,假定我們序列化一個對象,並通過網絡將其作為文件傳送給另一台機器。此時,位於另