列印流 : printwriter(字元輸出) printstream(位元組輸出)
總結:有writer 和reader 都是字元流
列印流在實現自動換行和重新整理要做true處理
列印流一般結合bufferreader和bufferedinputstream一起使用
//普通寫入
printwriter pw = new printwriter("pw.txt");
pw.println("asdad");
pw.println("asda");
pw.flush();
快捷寫入,實現自動換行自動重新整理
//快捷寫入,強力推薦!!!!!!
//printwriter pw2 = new printwriter(new filewriter("pw.txt"),true);
"asdsazxxz");
//這麼寫是追加功能,兩個true的位置不同,效果不同
//printwriter pw3 = new printwriter(new filewriter("pw.txt",true));
datainputstream
dataouputstream
構造方法類似buffered…引數是普通類
特點:1.能夠具備讀寫位元組的能力
2.寫入到檔案當中是不能夠識別,提高了資料的安全性
3.如果需要讀取基本資料型別,必須和寫入是的順序保持一致
4.針對基本資料型別進行加密
public static void read() throws exception
public static void write() throws exception
}
objectinputstream
objectoutputstream
特點:
我的筆記:
寫入物件要實現序列化介面serializable,反序列化時最好有乙個靜態常量序列化id,這樣在改動student類的時候,也不會生成新的id,則可序列化成功
注意:
寫入物件:
private static void write() throws filenotfoundexception, ioexception
學生類物件:
public class student implements serializable
system類中的靜態變數:in,out 。
「標準」輸入流:static inputstream in 。
「標準」輸出流:static printstream out 。
它們各代表了系統標準的輸入和輸出裝置。
預設輸入裝置是鍵盤,輸出裝置是顯示器。
鍵盤輸入顯示到控制台
* 資料來源: 鍵盤輸入
* 目的地: 控制台
* 交通工具: inputstream(system.in) printstream(system.out)
*其中system.in是inputstream子類物件
案例:自己寫乙個輸入方法代替scanner
public static void main(string args)
class myscanner
public myscanner(inputstream is)
public string nextline() catch (ioexception e)
return line;
} }
此類的例項支援對隨機訪問檔案的讀取和寫入。
long getfilepointer()
void seek(long pos)
void setlength(long newlength)
long length()
int skipbytes(int n)
特點randomaccessfile類不屬於流,是object類的子類。
包含了inputstream和outputstream的功能。支援對隨機訪問檔案的讀取和寫入。
讀寫基本資料型別
具備位元組流的功能
能夠支援隨機訪問檔案的讀取,在任意位置讀取和寫入資料
構造方法:
randomaccessfile(「raf.txt」, 「rw」);//操作的檔案,實現讀寫操作
//清空檔案
private static void clear() throws exception
//讀取檔案
private static void read() throws exception
///寫入檔案
private static void write() throws exception
實質是繼承了hashttable(屬於map的一種)
properties概述: properties 類表示了乙個持久的屬性集;properties 可儲存在流中或從流中載入;屬性列表中每個鍵及其對應值都是乙個字串。
properties可以當做map集合類使用
properties的特殊遍歷功能
新增/修改的方法:
public object setproperty(string key,string value)
通過key獲取value
public string getproperty(string key)
下面兩個方法相同:(遍歷key)
set ks = pr.keyset();
public set stringpropertynames()
properties和io流結合使用
public void load(reader reader)//讀取檔案資訊
public void store(writer writer,string comments)//寫入檔案資訊
配置檔案:
propties(屬性集) json(map) xml(結構化配置)
properties pr = new properties();//本質:繼承了hashtabel
pr.put("xz", "12");
pr.put("sd", "34");
system.out.println(pr);//列印map:
//map中的遍歷
setks = pr.keyset();
for (object object : ks)
//xz= 12
//sd= 34
properties的方法:相當於put : 新增屬性 get:通過key取值
pr.setproperty("name", "阿");
pr.setproperty("zxc", "123");
system.out.println(pr.get("name"));//阿
system.out.println(pr);
//
properties 和io結合
檔案的讀取:
properties pr1 = new properties();
//properties 和io結合
pr1.load(new filereader("x1.propreties"));//載入檔案中的內容進入pr1中
system.out.println(pr1);//列印properties檔案中的內容
//name=123
//word=lkj
檔案的寫入:(會加入修改時間)
//寫入dsfsf進x1,並在x1中顯示新增的時間
pr1.store(new filewriter("x1.propreties"), "dsfsf");
/** #dsfsf
#thu aug 22 19:44:43 cst 2019
name=123
word=lkj
*/
IO流中的其他物件
管道流 piped stream public class io62 1 class input 輸入 implements runnable public void run catch exception e class output 輸出 implements runnable public v...
IO流 字元流 IO流小結 IO流案例總結
1 字元流 掌握 1 位元組流操作中文資料不是特別的方便,所以就出現了轉換流。轉換流的作用就是把位元組流轉換字元流來使用。2 轉換流其實是乙個字元流 字元流 位元組流 編碼表 3 編碼表 a 就是由字元和對應的數值組成的一張表 b 常見的編碼表 ascii iso 8859 1 gb2312 gbk...
day21 IO 字元流 字元流其他內容 遞迴
21.01 io流 字元流filereader 2.filereader filereader fr new filereader aaa.txt 建立輸入流物件,關聯aaa.txt int ch while ch fr.read 1 fr.close 關流 21.02 io流 字元流filewri...