Java對數(shù)據(jù)的操作都是通過流的方式 拾枣,流中保存的實際上全都是字節(jié)文件亏娜,故流可以理解為字節(jié)數(shù)據(jù)。
IO流用來處理設(shè)備之間的數(shù)據(jù)傳輸厌均,需要讀取文件中的數(shù)據(jù)時用輸入流,需要往文件里添加數(shù)據(jù)時用輸出流告唆。
流按操作類型分為兩種:
1.字節(jié)流
?字節(jié)流可以操作任何數(shù)據(jù),因為在計算機(jī)中任何數(shù)據(jù)都是以字節(jié)的形式存儲的棺弊。
? ? ? ? ? ? 在字節(jié)流中輸入數(shù)據(jù)主要是使用InputStream(字節(jié)輸入流)完成,輸出數(shù)據(jù)使用OutputStream(字節(jié)輸出流)悔详。
InputStream構(gòu)造方法:
? ? ? ? ? FileInputStream(File file)
? ? ? ? ? FileInputStream(String name)
OutputStream構(gòu)造方法:
newFileOutputStream(file)镊屎; ? ? 這種構(gòu)造方法,會把以前的內(nèi)容都刪除
new FileOutputStream(file,true) ; ? ? 這種構(gòu)造方法能追加內(nèi)容
2.字符流
字符流只能操作純字符數(shù)據(jù)茄螃,比較方便缝驳;另在程序中一個字符等于兩個字節(jié)。
? ? ? ? ? ? 在字符流中輸入主要是使用Reader類完成归苍,輸入流主要使用Writer類完成用狱。
Reader
? ? ? ? ? ?Reader以字符數(shù)組的形式讀取出數(shù)據(jù)。
? ? ? ? ? ?Reader本身是抽象類拼弃,如果現(xiàn)在要從文件中讀取內(nèi)容夏伊,應(yīng)該直接使用FileReader子類。
FileReader的構(gòu)造方法定義如下:
? ? ? ? ? ?public FileReader(File file)
讀取數(shù)據(jù):
Writer
? ? ? ? ? ? ?字符流的操作比字節(jié)流操作好在一點吻氧,就是可以直接輸出字符串了溺忧,不用再像之前那樣進(jìn)行轉(zhuǎn)換操作了。
? ? ? ? ? ? ?writer 本身是一個抽象類盯孙,如果是向文件中寫入內(nèi)容鲁森,應(yīng)該使用FileWriter子類。
FileWriter類的構(gòu)造方法定義如下:
? ? ? ? ? ? ?public FileWriter(File file)
寫入數(shù)據(jù):
(InputStream振惰,OutputStream歌溉,Reader,Writer? 四個皆為抽象類骑晶,如果想要使用此類的話痛垛,則首先必須通過子類實例化對象)
JAVA 中IO操作步驟如下:
1.創(chuàng)建輸入/出流
3.進(jìn)行讀/寫操作
4.關(guān)閉輸入/輸出流