一:Java I/O流
1.I/O流對(duì)象繼承關(guān)系
2.文件操作
//創(chuàng)建文件對(duì)象欺税,沒有目錄就創(chuàng)建
File file = new File("E://waw.txt"); ?
if(!file.exists){
? ? ?file.ceateNewFile(); //創(chuàng)建文件
}?
//操作文件
使用流->.>>>>>>>
3.字節(jié)流
一次讀取一個(gè)字節(jié)
?InputStream OutputStream ? 字節(jié)輸入輸出流 ?, BufferedInputStream BufferedOutputStream緩沖區(qū)的字節(jié)輸入輸出流->flush()刷新緩沖區(qū)?
(1)讀取文件中的內(nèi)容
? ?OutputStream os = new FileOutputStream("",true); ?//
(2)
其實(shí)緩沖輸入輸出字節(jié)流驱富,跟非緩沖字節(jié)輸入輸出流的區(qū)別就是涤伐,緩沖字節(jié)輸入輸出流存在一個(gè)緩沖區(qū)潮改,read內(nèi)容先放到緩沖區(qū)一般為10 向拆,滿了就讀進(jìn)來。不滿可以使用flush()刷新緩沖區(qū)偏陪。
4.字符流
一次讀取一個(gè)字符
(1)
源文件中的編碼方式為UTF-8,輸出時(shí)也為UTF-8抢呆,結(jié)果輸出亂碼,問題就出現(xiàn)在FileReader讀取文件的過程中笛谦,F(xiàn)ileReader繼承了InputStreamReader抱虐,但是并沒有實(shí)現(xiàn)父類中帶字符集參數(shù)的構(gòu)造函數(shù)。
(2)
可以直接設(shè)置讀取文件讀取編碼格式
二:隨機(jī)存取 ?RandomAccessFile?
1.隨機(jī)存取不是流饥脑,是對(duì)流的封裝類恳邀。因?yàn)橛衧eek指針?biāo)钥梢赃M(jìn)行隨機(jī)讀取
RandomAccessFile raf = new RandomAccess("路徑","rw");//以讀寫方式打開文件
raf.writeChars(" ?");
raf.getFilePointer();//文件指針
raf.seek(4) //定位指針
raf.setlength(1024*1024);//設(shè)置文件的長度
三:對(duì)象的存取以及序列化
想要讀,文件中必須要有對(duì)象灶轰,所以需要先寫再讀谣沸。
ObjectOutputStream file = new ObjectOutputStream(new FileOutputStream);
file.wirteObject();
file.readObject();
(1)對(duì)象放入磁盤文件中
讀取磁盤文件中的對(duì)象。
序列化對(duì)象