小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

從out = new BufferedWriter("c:\\test.txt")談起,深入學(xué)習(xí)I/O流

 tianweibin 2011-01-03

希望讀寫一個文本文件,寫了下面2句:
BufferedWriter out;
out = new BufferedWriter("c:\\test.txt");

這種做法是錯誤的,正確寫法是:
BufferedWriter out = newBufferedWriter( new fileWriter("c:\\test.txt"));

==============今日學(xué)習(xí)筆記================================================

學(xué)習(xí)內(nèi)容java的輸入輸出
1、java沒有標(biāo)準(zhǔn)的輸入和輸出語句,輸入輸出過程被抽象為輸入輸出流 [面向?qū)ο蟮恼Z言!流就是對象,來抽象出輸入輸出的過程]
這種操作由 I/O包中的一些流類的方法來實現(xiàn),常用包java.io
2、一個流:一個從源 流向 目的地的數(shù)據(jù)序列
3、輸入輸出流的分類
---按照流的方向劃分:輸入流、輸出流
---按照流的分工劃分:節(jié)點流、處理流
---按照流的內(nèi)容劃分:面向字符的流、面向字節(jié)的流!

4、java.io包的頂級層次結(jié)構(gòu)
--object---inputStream\outputStream [面向字節(jié)流]\Reader\Writer[面向字符流]

Object
---字節(jié)流------|----InputStream
---字節(jié)流------|----OutputStream
---字符流------|----Reader
---字符流------|----Writer

5、什么是字符流:
所有數(shù)據(jù)都是8位字節(jié)組成,邏輯上講,所有的流[數(shù)據(jù)序列]都是“字節(jié)流”
但是,表示[字符]的[字節(jié)流]有其特定的處理單位,故被稱為“字符流”,其他的稱為“字節(jié)流”
字符流:針對字符數(shù)據(jù)的特點作了優(yōu)化,字符流的源和目標(biāo)通常是:文本文件!
6、java字符使用16-bit的Unicode編碼,每個字符2個字節(jié),即16-bit
7、字符流可以實現(xiàn)java程序內(nèi)部格式和文本文件、顯示輸出、鍵盤輸入等外部格式之間的轉(zhuǎn)換[如何轉(zhuǎn)換?]
8、Reader\Writer是java.io包中所有字符流的抽象基類[字符流類結(jié)構(gòu)圖]

圖1:Reader類層次結(jié)構(gòu)


圖二、Writer類層次結(jié)構(gòu)

9、什么是字節(jié)流:
例如:鍵盤輸入的數(shù)據(jù)
數(shù)據(jù)源中包含非字符數(shù)據(jù),如:java編輯器產(chǎn)生的字節(jié)碼文件中含有java虛擬機(jī)的指令,這些信息不能被解釋為字符,必須用字節(jié)流來輸入輸出。
字節(jié)流:通常用于都寫圖片、聲音等二進(jìn)制的數(shù)據(jù)
10、inputStream\outputStream是用來處理8位字節(jié)流的抽象基類[字節(jié)流類結(jié)構(gòu)圖]

11、標(biāo)準(zhǔn)的輸入輸出流
=====標(biāo)準(zhǔn)輸入System.in;是原始的InputStream需要經(jīng)過包裝(如何包裝?)才可以從鍵盤讀取信息
-----標(biāo)準(zhǔn)輸出System.out;
=----標(biāo)準(zhǔn)錯誤輸出System.err后2個是PrintStream,默認(rèn)是對應(yīng)屏幕的輸出(還可以輸出到哪里呢?)

12、處理流:
處理流不直接與數(shù)據(jù)源或目標(biāo)相連,而是與另一個流進(jìn)行配合(如何配合?),對數(shù)據(jù)進(jìn)行某種處理
例如:BufferReader就是一個處理流,與InputStreamReader/FileWriter等節(jié)點流配合,緩沖輸入輸出德信息,提高效率

----------------------------以上的每一句話都值得細(xì)細(xì)體會--alonglee 舒暢java---------------------------------


圖三:I/O流的鏈接

對文章前面提到錯誤代碼的分析解釋:
1、BufferWriter是Writer的子類,屬于字符流類,可以用于文本文件的寫入操作
2、但是BufferWriter類是一個處理流類,不可以直接與數(shù)據(jù)源或目標(biāo)相連,這里的目標(biāo)當(dāng)然是一個文本文件test.txt,它需要與另一個流進(jìn)行配合。那么另一個流是什么呢?
3、由于是準(zhǔn)備寫一個文本文件,需要一個節(jié)點流類---FileWrite來讀取/生成一個文件
4、這樣BufferWriter就是和FileWrite配合對數(shù)據(jù)進(jìn)行緩沖處理!

完整的代碼如下:

.....main(){
String fileName = "C:\\newTestfile.txt";// 注意是2個\\,一個是轉(zhuǎn)義 或者這樣寫c:/newTestfile.txt
BufferWriter out = new BufferWriter(new FileWriter(fileName));//將FileWriter嵌入在BufferWriter中

out.write("this is a test file");
out.newLine();//換行
out.write("中文會不會產(chǎn)生問題?")
out.newLine();//換行
out.close();//清空流里面的內(nèi)容并關(guān)閉它,這里是結(jié)束文件操作
}



}

來自:http://hi.baidu.com/aaa888/blog/item/7207c42a83c37f9a023bf647.html

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多