其他的IO流

2021-09-26 09:35:32 字數 4515 閱讀 5978

列印流 : 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...