7.1概述
考點(diǎn):1
流的概念和Java語言中的I/O流
1.流的基本概念
流是指在計算機(jī)的輸入與輸出之間流動的數(shù)據(jù)序列:從數(shù)據(jù)源串行地流向數(shù)據(jù)目的地。
(1)輸入流是指從外設(shè)流入計算機(jī)的數(shù)據(jù)流。
(2)輸出流是指從計算機(jī)流向外設(shè)的數(shù)據(jù)流。
2.Java語言中的I/O流
Java的I/O功能主要是通過輸入輸出類庫java.io包來實(shí)現(xiàn)的,java.io包中包括了可以處理字節(jié)流、字符流、文件流和對象流等的類,這些類主要可以分為如下幾個:
(1)接口:處理字節(jié)流的DataInput和DataOutput;處理對象流的ObjectInput和Obj ectOutput;篩選文件名的FileNameFilter;處理對象流的Serializable。
(2)抽象類:處理字節(jié)流的InputStream和OutputStream;處理過濾流的FilterOutputStream和FilterInputStream;處理字符流的Reader和Writer;處理壓縮流的InflaterInputStream和DeflaterOutputStream。
(3)非字符輸入/輸出流,分別通過繼承抽象類InputStream和OutputStream實(shí)現(xiàn),輸入流包括字節(jié)數(shù)組作為輸入流的ByteArrayInputStream;處理磁盤文件的FileInputStream;實(shí)現(xiàn)線程通信的PipedInputStream;過濾器輸入流FilterInputStream;輸入流的連接SequenceInputStream,輸出流則包括和輸入流相對應(yīng)的類。
(4)過濾字節(jié)輸入/輸出流,分別通過繼承抽象類FilterlnputStream和FilterInputStream實(shí)現(xiàn),輸入流包括BufferedInputStream類,Checked InputStream類等輸出流則包括和輸入流相對應(yīng)的類。
(5)壓縮文件輸入/輸出流,分別繼承自InflaterInputStream和DeflaterOutputStream類。
(6)字符輸入/輸出流,分別繼承自抽象類Reader和Writer。
(7)同時兼有輸入和輸出功能的RandomAccessFile類,實(shí)現(xiàn)DataInput和DataOutput接口,直接繼承自O(shè)bject類,可以在文件的任意位置讀寫記錄。
7.2文件和文件I/O
考點(diǎn):2
文件和文件I/O
1.文件
File類是Java.io包中專門處理文件并獲取文件有關(guān)信息的一個類。Java語言通過File類建立與磁盤文件的聯(lián)系。對File類的理解,需要注意如下幾點(diǎn):
(1)File類不是InputStream類或者OutputStream類的子類,它不負(fù)責(zé)數(shù)據(jù)的輸入輸出,而是專門用來管理文件和目錄。
(2)在Java語言中,目錄也作為File類的對象進(jìn)行處理。
(3)每個File類的對象都表示一個文件或目錄,調(diào)用其方一法就可以獲得該文件或目錄的屬性,完成對文件或目錄的常用管理操作。
(4)流類關(guān)心的是文件的內(nèi)容,而File類關(guān)心的是文件在磁盤上的存儲。
2.File類的方法
(1)創(chuàng)建文件,與一般的類的初始化格式一樣:
File name=new File();
File name=new File(,);
說明:構(gòu)造函數(shù)的參數(shù)可以是路徑文件名,也可以是路徑和文件名。
(2)文件名操作,有g(shù)etName(),getParent(),getPath(),list(),getCanonicalPath()throws IOException等。
(3)測試文件屬性操作,有isDirectory(),isAbsolute(),exists(),canRead(),canWrite()等。
(4)文件信息操作,有delete(),deleteOnExit(),length(),lastModified()等。
(5)目錄操作,有mkdir(),mkdirs(),list(),listRoots()等。
(6)其他,有hashCode(),setLastModified(long time),setReadOnly()等。
3.隨機(jī)文件流
RandomAccessFile類用來實(shí)現(xiàn)對文件的隨機(jī)讀寫操作。它繼承自O(shè)bject類,實(shí)現(xiàn)了DataInput和DataOutput接口。構(gòu)造方法如下:
RandomAccessFile raf=new RandomAccessFile(<文件名>,<訪問模式>):
說明如下:
(l)文件名參數(shù),可以是File類對象或文件名字符串的形式提供。
(2)訪問模式,有2種取值:“r”只讀,或者“rw”讀寫。
4.壓縮文件流
壓縮文件流被定義在java.util.zip包和Java.util.jar包中,包括壓縮文件輸入流ZipInputStream和壓縮文件輸出流ZipOutputStream。編寫程序時一般使用壓縮文件流的步驟如下:
(1)將一個Zip文件作為FileInputStream構(gòu)造方法的參數(shù)。
(2)將上述FileInputStream對象作為ZipInputStream構(gòu)造方法的參數(shù)。
(3)再將上一步中的ZipInputStream對象作為InputStreamReader構(gòu)造方法的參數(shù)。
(4)最后InputStrearn Reader對象作為BufferedReader構(gòu)造方法的參數(shù),然后就可以使用readLine()等方法進(jìn)行操作。
7.3字節(jié)I/O流
考點(diǎn):3
字節(jié)I/O流
1.字節(jié)輸入流
字節(jié)輸入流繼承自InputStream類,并且使用DataInputStream實(shí)現(xiàn)DataInput接口。編程時一般的步驟如下:
(1)字節(jié)數(shù)據(jù)的來源(二進(jìn)制文件)作為FileInputStream的構(gòu)造方法的參數(shù),實(shí)例化一個 FileInputStream對象。
(2)FileInputStream對象作為DataInputStream的構(gòu)造方法的參數(shù)。
(3)然后就可以使用InputStream類中的方法,進(jìn)行字節(jié)輸入流的操作。
InputStream類的方法有:read(),available(),skip(),close()等。
考點(diǎn):1
流的概念和Java語言中的I/O流
1.流的基本概念
流是指在計算機(jī)的輸入與輸出之間流動的數(shù)據(jù)序列:從數(shù)據(jù)源串行地流向數(shù)據(jù)目的地。
(1)輸入流是指從外設(shè)流入計算機(jī)的數(shù)據(jù)流。
(2)輸出流是指從計算機(jī)流向外設(shè)的數(shù)據(jù)流。
2.Java語言中的I/O流
Java的I/O功能主要是通過輸入輸出類庫java.io包來實(shí)現(xiàn)的,java.io包中包括了可以處理字節(jié)流、字符流、文件流和對象流等的類,這些類主要可以分為如下幾個:
(1)接口:處理字節(jié)流的DataInput和DataOutput;處理對象流的ObjectInput和Obj ectOutput;篩選文件名的FileNameFilter;處理對象流的Serializable。
(2)抽象類:處理字節(jié)流的InputStream和OutputStream;處理過濾流的FilterOutputStream和FilterInputStream;處理字符流的Reader和Writer;處理壓縮流的InflaterInputStream和DeflaterOutputStream。
(3)非字符輸入/輸出流,分別通過繼承抽象類InputStream和OutputStream實(shí)現(xiàn),輸入流包括字節(jié)數(shù)組作為輸入流的ByteArrayInputStream;處理磁盤文件的FileInputStream;實(shí)現(xiàn)線程通信的PipedInputStream;過濾器輸入流FilterInputStream;輸入流的連接SequenceInputStream,輸出流則包括和輸入流相對應(yīng)的類。
(4)過濾字節(jié)輸入/輸出流,分別通過繼承抽象類FilterlnputStream和FilterInputStream實(shí)現(xiàn),輸入流包括BufferedInputStream類,Checked InputStream類等輸出流則包括和輸入流相對應(yīng)的類。
(5)壓縮文件輸入/輸出流,分別繼承自InflaterInputStream和DeflaterOutputStream類。
(6)字符輸入/輸出流,分別繼承自抽象類Reader和Writer。
(7)同時兼有輸入和輸出功能的RandomAccessFile類,實(shí)現(xiàn)DataInput和DataOutput接口,直接繼承自O(shè)bject類,可以在文件的任意位置讀寫記錄。
7.2文件和文件I/O
考點(diǎn):2
文件和文件I/O
1.文件
File類是Java.io包中專門處理文件并獲取文件有關(guān)信息的一個類。Java語言通過File類建立與磁盤文件的聯(lián)系。對File類的理解,需要注意如下幾點(diǎn):
(1)File類不是InputStream類或者OutputStream類的子類,它不負(fù)責(zé)數(shù)據(jù)的輸入輸出,而是專門用來管理文件和目錄。
(2)在Java語言中,目錄也作為File類的對象進(jìn)行處理。
(3)每個File類的對象都表示一個文件或目錄,調(diào)用其方一法就可以獲得該文件或目錄的屬性,完成對文件或目錄的常用管理操作。
(4)流類關(guān)心的是文件的內(nèi)容,而File類關(guān)心的是文件在磁盤上的存儲。
2.File類的方法
(1)創(chuàng)建文件,與一般的類的初始化格式一樣:
File name=new File(
File name=new File(
說明:構(gòu)造函數(shù)的參數(shù)可以是路徑文件名,也可以是路徑和文件名。
(2)文件名操作,有g(shù)etName(),getParent(),getPath(),list(),getCanonicalPath()throws IOException等。
(3)測試文件屬性操作,有isDirectory(),isAbsolute(),exists(),canRead(),canWrite()等。
(4)文件信息操作,有delete(),deleteOnExit(),length(),lastModified()等。
(5)目錄操作,有mkdir(),mkdirs(),list(),listRoots()等。
(6)其他,有hashCode(),setLastModified(long time),setReadOnly()等。
3.隨機(jī)文件流
RandomAccessFile類用來實(shí)現(xiàn)對文件的隨機(jī)讀寫操作。它繼承自O(shè)bject類,實(shí)現(xiàn)了DataInput和DataOutput接口。構(gòu)造方法如下:
RandomAccessFile raf=new RandomAccessFile(<文件名>,<訪問模式>):
說明如下:
(l)文件名參數(shù),可以是File類對象或文件名字符串的形式提供。
(2)訪問模式,有2種取值:“r”只讀,或者“rw”讀寫。
4.壓縮文件流
壓縮文件流被定義在java.util.zip包和Java.util.jar包中,包括壓縮文件輸入流ZipInputStream和壓縮文件輸出流ZipOutputStream。編寫程序時一般使用壓縮文件流的步驟如下:
(1)將一個Zip文件作為FileInputStream構(gòu)造方法的參數(shù)。
(2)將上述FileInputStream對象作為ZipInputStream構(gòu)造方法的參數(shù)。
(3)再將上一步中的ZipInputStream對象作為InputStreamReader構(gòu)造方法的參數(shù)。
(4)最后InputStrearn Reader對象作為BufferedReader構(gòu)造方法的參數(shù),然后就可以使用readLine()等方法進(jìn)行操作。
7.3字節(jié)I/O流
考點(diǎn):3
字節(jié)I/O流
1.字節(jié)輸入流
字節(jié)輸入流繼承自InputStream類,并且使用DataInputStream實(shí)現(xiàn)DataInput接口。編程時一般的步驟如下:
(1)字節(jié)數(shù)據(jù)的來源(二進(jìn)制文件)作為FileInputStream的構(gòu)造方法的參數(shù),實(shí)例化一個 FileInputStream對象。
(2)FileInputStream對象作為DataInputStream的構(gòu)造方法的參數(shù)。
(3)然后就可以使用InputStream類中的方法,進(jìn)行字節(jié)輸入流的操作。
InputStream類的方法有:read(),available(),skip(),close()等。

