資源描述:
《io流(熟練使用api)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、I/O流?。ㄊ炀毷褂茫粒校桑ㄒ唬汉?jiǎn)單介紹(java.io包)1:流的分類: (1)輸入流/輸出流:根據(jù)數(shù)據(jù)方向分類輸入流:讀取流輸出流:寫入流(2)字節(jié)流/字符流:根據(jù)數(shù)據(jù)單位分類(根據(jù)處理數(shù)據(jù)的不同來區(qū)分)(3)節(jié)點(diǎn)流/過濾流(包裝流):根據(jù)流功能分類區(qū)別:(1)所有以inputstream/outstream為結(jié)尾的流都是字節(jié)流,以reader/writer為結(jié)尾的是字符流(但是橋轉(zhuǎn)換流例外InputStreamReader/OutputStreamWriter)是一個(gè)包裝流(2)節(jié)點(diǎn)流:可以直接讀取源數(shù)據(jù)的流(直接點(diǎn)說:就是參數(shù)可以是數(shù)據(jù)源) 6流)。字節(jié)流字符流備注FileOu
2、tputStreamFileInputStreamFileWriterFileReader二進(jìn)制文件用字節(jié)流,字符文件用字符流PipedOutputStreamPipedInputStreamPipedWriterPipesReader主要用于線程間通信處理流(過濾流)BufferedOutputStreamBufferedInputStreamBufferdWriterBufferedReader帶有緩沖的流,只有在緩沖滿的時(shí)候或者手動(dòng)刷新的時(shí)候DataOutputStreamDataInputStream無(wú)讀寫基本類型的數(shù)據(jù)的方法PrintStreamPrintWriter主要用于記錄日志
3、,格式化的輸出,所見即所輸入,在構(gòu)造的時(shí)候,確定是否自動(dòng)刷新ObjectOutputStreamObjectInputStream無(wú)對(duì)象的序列化OutputStreamWriterInputStreamReader無(wú)用于字節(jié)流和字符流的轉(zhuǎn)化(橋轉(zhuǎn)換流)JavaIO的一般使用原則:一、按數(shù)據(jù)來源(去向)分類:1、是文件:FileInputStream,FileOutputStream,FileReader,FileWriter2、是byte[]:ByteArrayInputStream,ByteArrayOutputStream3、是Char[]:CharArrayReader,CharArra
4、yWriter4、是String:StringBufferInputStream,StringReader,StringWriter5、網(wǎng)絡(luò)數(shù)據(jù)流:InputStream,OutputStream,Reader,Writer二、按是否格式化輸出分:1、要格式化輸出:PrintStream,PrintWriter三、按是否要緩沖分:1、要緩沖:BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter四、按數(shù)據(jù)格式分:1、二進(jìn)制格式(只要不能確定是純文本的):InputStream,OutputStream及其所有
5、帶Stream結(jié)束的子類2、純文本格式(含純英文與漢字或其他編碼方式);Reader,Writer及其所有帶Reader,Writer的子類五、按輸入輸出分:1、輸入:Reader,InputStream類型的子類2、輸出:Writer,OutputStream類型的子類六、特殊需要:1、從Stream到Reader,Writer的轉(zhuǎn)換類:InputStreamReader,OutputStreamWriter2、對(duì)象輸入輸出:ObjectInputStream,ObjectOutputStream3、進(jìn)程間通信:PipeInputStream,PipeOutputStream,PipeRea
6、der,PipeWriter4、合并輸入:SequenceInputStream(序列流)5、更特殊的需要:PushbackInputStream,PushbackReader,LineNumberInputStream,LineNumberReader決定使用哪個(gè)類以及它的構(gòu)造進(jìn)程的一般準(zhǔn)則如下(不考慮特殊需要):第一,考慮最原始的數(shù)據(jù)格式是什么:是否為文本?第二,是輸入還是輸出?第三,是否需要轉(zhuǎn)換流:InputStreamReader,OutputStreamWriter?第四,數(shù)據(jù)來源(去向)是什么:文件??jī)?nèi)存?網(wǎng)絡(luò)?第五,是否要緩沖:bufferedReader(特別注明:一定要注意的
7、是readLine()是否有定義,有什么比read,write更特殊的輸入或輸出方法)第六,是否要格式化輸出:print?(二):使用注意:1:打開一個(gè)流之后,一定要注意關(guān)閉。2:OutputStreamos=newOutputStream(2,txt);注意:調(diào)用完這句話的時(shí)候,就會(huì)創(chuàng)建一個(gè)2.txt文件,如果原來已經(jīng)有了這個(gè)文件,則會(huì)把原來的刪掉,再創(chuàng)建一個(gè)新的。如果需要追加:則這樣構(gòu)造:Ou