傳智播客黑馬程序員javaIO流重點總結(jié)(必讀)_第1頁
傳智播客黑馬程序員javaIO流重點總結(jié)(必讀)_第2頁
傳智播客黑馬程序員javaIO流重點總結(jié)(必讀)_第3頁
傳智播客黑馬程序員javaIO流重點總結(jié)(必讀)_第4頁
傳智播客黑馬程序員javaIO流重點總結(jié)(必讀)_第5頁
全文預覽已結(jié)束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、IO流總結(jié)異常父類是Throwable,處理異常的兩種方案,一種try -catch 另外一種拋出熟練使用Try-catch-finally,注意: 能和try一起使用的只有catch和finally關鍵字Try塊里面存放的是有可能發(fā)生異常的代碼,通常和catch塊一起使用,catch塊用于處理try塊中拋出的異常,finally塊不是必須的,通常將釋放資源(例如IO流的close方法)的代碼放到finally塊里面注意:finally和Final還有Finalize的區(qū)別File類注意:File類封裝的路徑,而不一定是一個具體的文件,File類不能用于讀寫文件,File類只能用來處理和文件相

2、關的操作構造方法* File(String pathname):根據(jù)一個路徑得到File對象* File(String parent, String child):根據(jù)一個目錄和一個子文件/目錄得到File對象* File(File parent, String child):根據(jù)一個父File目錄和一個子文件/目錄得到File對象創(chuàng)建功能* public boolean mkdir():創(chuàng)建文件夾 如果存在這樣的文件夾,就不創(chuàng)建了* public boolean mkdirs():創(chuàng)建文件夾,如果父文件夾不存在,會幫你創(chuàng)建出來注意:mkdir只能創(chuàng)建單級目錄,mkdirs用于創(chuàng)建多級目錄判斷

3、功能, * public boolean isDirectory():判斷是否是目錄* public boolean isFile():判斷是否是文件* public boolean exists():判斷文件是否存在注意:判斷功能返回的都是布爾類型的獲取功能* public String getName():獲取名稱* public long length():獲取長度。字節(jié)數(shù)* public File listFiles():獲取指定目錄下的所有文件或者文件夾對象,返回的是File數(shù)組 * public File listFiles(FilenameFilter filter):

4、注意:此方法需要傳入篩選文件名的接口FileNameFilter,用于過濾文件概念* Input Output流用來處理設備之間的數(shù)據(jù)傳輸,Java中輸入輸出功能是通過流來實現(xiàn),把數(shù)據(jù)寫入文件需要創(chuàng)建流對象* Java對數(shù)據(jù)的操作是通過流的方式* Java用于操作流的類都在IO包中* 流按流向分為兩種:輸入流,輸出流。注意:讀取文件都用輸入流,寫出文件都用輸出流* 流按操作類型分為兩種:* 字節(jié)流 : 字節(jié)流可以操作任何數(shù)據(jù),因為在計算機中任何數(shù)據(jù)都是以字節(jié)的形式存儲的* 字符流 : 字符流只能操作純字符數(shù)據(jù),比較方便。注意:IO流父類是java.io包下的抽象類,非接口! 字符流和字節(jié)流的區(qū)

5、別在于每次讀取的字節(jié)數(shù)不一樣,字節(jié)流讀取的是單個字節(jié),而字符流讀取的是單個字符,相當于兩個字節(jié). 字節(jié)流可以用于任何文件的拷貝,而字符流只能用于拷貝文本文件,通常都用字節(jié)流做拷貝,字符流只用于在只讀或者只寫的情況下.字節(jié)流 |-InputStream(字節(jié)輸入流,字節(jié)流的抽象父類,抽象類不能直接創(chuàng)建對象,必須使用子類)|-FileInputStream(文件字節(jié)輸入流,就是以字節(jié)的形式讀取文件內(nèi)容)|-read()每次讀取一個字節(jié)(byte),但是返回值類型,為int類型,防止出現(xiàn)文件提前結(jié)束|-read(byte b)每次讀取多個字節(jié),將內(nèi)容放入字節(jié)數(shù)組b中|-BufferedInputSt

6、ream(字節(jié)輸入緩沖流,其實就是一個包裝類,創(chuàng)建對象時要接收一個InputStream,內(nèi)部封裝了一個1024*8的字節(jié)數(shù)組)|-使用BufferedInputStream就不用再定義數(shù)組了|-OutputStream(字節(jié)輸出流,字節(jié)流的抽象父類)|-FileOutputStream(文件字節(jié)輸出流,就是以字節(jié)的形式將內(nèi)容寫入到文件中)注意:創(chuàng)建FileOutputStream時候在構造參數(shù)里面?zhèn)魅雝rue,可以實現(xiàn)續(xù)寫功能,即添加數(shù)據(jù)到末尾.|-write(int b)一次寫出一個字節(jié)|-write(byte b)將字節(jié)數(shù)組b里的內(nèi)容寫入到文件中|-write(byte b, int o

7、ff, int len)將字節(jié)數(shù)組b里的內(nèi)容,從索引為off的位置開始,總共寫len個注意:字節(jié)輸出流沒有直接寫出字符串的功能,需要將字符串轉(zhuǎn)為字節(jié)數(shù)組才能輸出 通過FileInputStream和FileOutputStream可以對任意類型的文件復制拷貝|-BufferedOutputStream(字節(jié)輸出緩沖流,其實就是一個包裝類,創(chuàng)建對象時要接收一個OutputStream,內(nèi)部封裝了一個1024*8的字節(jié)數(shù)組) 字符流|-Reader(字符輸入流,字符流的抽象父類,抽象類不能直接創(chuàng)建對象,必須使用子類)|-FileReader(文件字符輸入流,就是以字符的形式讀取文本文件中的內(nèi)容)|

8、-read()每次讀取一個字符,即可以按照字符大小讀取,返回值類型提升為int類型|-read(char b)每次讀取多個字符,將內(nèi)容放入字符數(shù)組b中|-BufferedReader(字符輸入緩沖流,其實就是一個包裝類,注意:創(chuàng)建對象時要接收一個Reader,內(nèi)部封裝了一個1024*8的字符數(shù)組),例如傳入FileReader或轉(zhuǎn)換流InputStreamReader都可以|-使用BufferedReader和BufferedWriter就不用再定義數(shù)組了|-readLine()可以讀取一行字符(不包含換行符號),注意:只有BufferReader才有讀取一行的方法,其他流沒有|-newLin

9、e()是寫入換行方法,根據(jù)不同系統(tǒng)平臺可以執(zhí)行相應換行操作,即可以跨平臺|-LineNumberReader是BufferedReader的子類, 具有相同的功能, 并且可以統(tǒng)計行號|-getLineNumber()方法可以獲取當前行號|-setLineNumber()方法可以設置當前行號|-Writer(字符輸出流,字符流的抽象父類)|-FileWriter(文件字符輸出流,就是以字符的形式將內(nèi)容寫入到文件中)|-write('a')/write("aaaa")可以寫入單個字符或者寫入字符串|-write(char b, int off, int len)

10、將字符數(shù)組b里的內(nèi)容,從所以為off的位置開始,總共寫len個注意:FileInputStream和FileOutputStream用于讀寫字節(jié)流的 FileReader和FileWriter是用于讀寫字符流的字符流不能用于圖片的拷貝,只能拷貝文本文件|-BufferedWriter(字符輸出緩沖流,其實就是一個包裝類,創(chuàng)建對象時要接收一個Writer,內(nèi)部封裝了一個1024*8的字符數(shù)組) |-newLine()可以輸出一個跨平臺的換行符號"rn"轉(zhuǎn)換流(使用指定的碼表讀寫字符) |-InputStreamReader字節(jié)輸入流到字符輸入流的橋梁|-Output

11、StreamWriter字符輸出流到字節(jié)輸出流的橋梁其它流|-SequenceInputStream序列流|-序列流可以把多個字節(jié)輸入流整合成一個, 從序列流中讀取數(shù)據(jù)時, 將從被整合的第一個流開始讀, 讀完一個之后繼續(xù)讀第二個, 以此類推.|-SequenceInputStream(InputStream in1,InputStream in2)|-SequenceInputStream(Enumeration en)|-ByteArrayOutputStream字節(jié)數(shù)組內(nèi)存輸出流|-是將文件或鍵盤錄入的數(shù)據(jù)寫入到內(nèi)存中的字節(jié)數(shù)組|-ByteArrayInputStream字節(jié)數(shù)組內(nèi)存輸入流

12、|-是以字節(jié)的方式讀取內(nèi)存中的字節(jié)數(shù)組數(shù)據(jù)|-創(chuàng)建此對象要傳遞一個字節(jié)數(shù)組|-RandomAccessFile隨機讀寫訪問流|-該流同時具有讀和寫的功能|-seek(long pos)設置讀取和寫入的位置|-對象操作流|-ObjectOutputStream將對象寫入到文件,要求對象所屬的類實現(xiàn)Serializable接口,該接口里面沒有內(nèi)容,只是一個標記,可以給此類添加個序列號ID,也可以不加.|-writeObject()此方法將對象寫到文件|-ObjectInputStream將上面存入到文件中的對象讀取出來,因為存的時候所有對象是按照Object存入,所以取出來要進行強制類型轉(zhuǎn)換注意:

13、寫出的對象需要實現(xiàn)序列化接口,即Serializable接口,否則報錯|-readObject()可以從文件讀取對象出來|-數(shù)據(jù)輸入輸出流|-DataInputStream數(shù)據(jù)輸入流,就是從文件讀取特定類型的數(shù)據(jù)|-readInt()從文件中讀取一個int類型的數(shù)據(jù)|-readLong()從文件讀取一個long類型的數(shù)據(jù)|-DataOutputStream數(shù)據(jù)輸出流,向文件寫出特定類型的數(shù)據(jù)|-writeInt()向文件寫入一個int類型的數(shù)據(jù)|-writeLong()向文件寫入一個long類型的數(shù)據(jù)|-打印流PrintStream注意:PrintWriter,只操作數(shù)據(jù)目的,不操作數(shù)據(jù)源,P

14、rintln可以自動刷新,是Writer的子類|-標準輸入輸出流|-System.in是InputStream, 標準輸入流, 默認可以從鍵盤輸入讀取字節(jié)數(shù)據(jù)|-System.setIn(InputStream)修改輸入流|-System.out是PrintStream, 標準輸出流, 默認可以向Console中輸出字符和字節(jié)數(shù)據(jù)|-System.setOut(PrintStream)修改輸出流|-鍵盤錄入的兩種方式|-Scanner sc = new Scanner(System.in);|-BufferedReader br = new BufferedReader(new InputSt

15、reamReader(System.in);|-Properties是Hashtable的子類,是一個Map,存放的是鍵值對,一般用于項目的配置文件,配置文件中鍵和值的類型都為String類型|-setProperty(String key,String value)向Properties中存入鍵值對|-getProperty(String key)根據(jù)鍵獲取值|-public Enumeration<String> stringPropertyNames()以String的形式獲取所有的鍵,并封裝成Enumeration對象,之后進行遍歷|-load(InputStream inStream) 將字節(jié)輸入流inStream

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論