java
文件被作為字節的順序集保存在存儲設備上
java
文件對象
在我們開始把這些文件轉變成流之前
在你和文件系統打交道的時候
下面這些例子顯示了文件對象的方法的使用
創建一個新目錄
使用下面的代碼就能夠創建一個新目錄
//Create File Object
File newDir = new File(
//Create New Directory
newDir
刪除一個文件
刪除一個文件很容易
//Create File Object
File f = new File(
//Delete the file
f
列出一個目錄
要記住的是
//Create File Object
File dir = new File(
一旦有了合適的路徑
//List directory
if(dir
{
String s[] = dir
for (int i=
i
//Iterate through files
}
}
文件對象的list()方法將返回一個字符串數組,這會列出目錄的內容——文件和文件夾都會被列出來。Tw.WIngwiT.com
字符串數組常常被用來向用戶顯示目錄的內容,或者用於創建更多的文件對象來反復搜尋目錄裡所有的文件夾和子文件夾。
輸入和輸出流
流對象和過濾器對象常常會讓程序員感到迷惑。圖A概述了處理流和過濾器的抽象模型。
圖A
抽象的輸入和輸出處理
輸入
輸入處理像下面這樣工作:
輸入流從輸入設備讀取字節。
輸入過濾器從輸入流裡讀取字節,並將數據返回給其調用者。
輸出
輸出處理以類似的方式工作:
輸出過濾器接收數據,並把字節寫到輸出流。
輸出流接收字節,並把它們寫到輸出設備。
這個簡單的模型很靈活,因為你可以把其他過濾器串起來,從而擴展其處理能力,讓其能夠實現特定目標。
文件流和過濾器
讓我們看上述模型的一個例子。在這個例子裡,我們的目標是從文件系統裡讀取文件,對流進行緩沖,然後再用不同的名稱把文件寫到文件系統裡。事實上,我們是在把文件從一個地方復制到另一個地方(見圖B)。Listing A裡的代碼提供了達到這個目的的方法。
圖B
文件輸入和輸出處理
要注意以下抽象模型和文件模型之間的關系:
FileInputStream是InputStream的子類。
BufferedInputStream是FilterInputStream的子類。
類似地:
BufferedOutputStream是FilterOutputStream的子類。
FileOutputStream是OutputStream的子類。
復制一個目錄
Listing B使用了我們在Listing A裡用過的copyFile方法,而且使用了文件的用於目錄的list()方法,它把所有的文件(不是文件夾)從一個目錄復制到了另一個目錄。
這方法帶有兩個參數——要被復制文件夾的名稱和我們要把文件復制到的文件夾。
閱讀器和編寫器超類
閱讀器和編寫器是用於所有字符流的超類。這兩者都能處理Unicode字符,能夠正確地處理本地編碼和Unicode文本之間的相互轉換。
Unicode是一項表示文本的標准,對諸如印度語、朝鮮語和漢語等字符集提供了支持。Java和XML都使用Unicode表示大量的人類語言。
當被讀取的數據源是文本的時候,我們都要使用閱讀器和編寫器,而不是用InputStreams和 OutputStreams,後兩者專門用於處理字節。
從文件讀取文本
FileReader是InputStreamReader的子類,被用作從文件裡讀取文本。BufferedReader是閱讀器的子類,能夠提高字符輸入操作的效率。
Listing C所包含的例子使用FileReader和BufferedReader從文件裡讀取文本。
把文本寫入文件
FileWriter是OutputStreamWriter的子類,被用作把文本寫入文件。BufferedWriter是編寫器的子類,能夠提高字符輸出操作的效率。
Listing D使用FileWriter把Java字符串寫入文件。
結論
本教程從解釋文件對象開始,並把它作為理解輸入和輸出流,以及閱讀器和編寫器的基礎。
你現在應該可以更好地了解了如何創建和刪除文件,把文件從一個地方復制到另一個地方,以及讀取和編寫文本文件,所有這些都是在Java流對象的幫助下完成的。
[[The No.1 Link Start.]]
本文相關連接請點這裡>>>[[The No
From:http://tw.wingwit.com/Article/program/Java/Javascript/201311/25281.html