io流
流按運算元據分為兩種:位元組流與字元流
流按流向分為:輸入流、輸出流
位元組流的抽象基類:
inputstream
outputstream
字元流的抽象基類:
reader
witer
這四個類派生出來的子類名稱都是以其父類名作為子類名的字尾。
字元流:寫入流writer
用於操作檔案的writer子類物件,filewriter,字尾名是父類名,字首名是該流物件的功能。
建立乙個filewriter物件,該物件一被初始化就必須要有被操作的檔案。而且該檔案會被建立到指定的目錄下。如果該目錄下已有同名檔案,將被覆蓋。
filewriter fw = new filewriter(「f:\\test.txt」);
構造方法需要捕捉異io異常。
呼叫write方法,將字串寫入流中。
fw.writer(「asdfdsasfdsa」);
重新整理流物件中的緩衝中的資料,將資料寫到目的地中。
fw.flush();
fw.close();
關閉流資源,關閉之前會重新整理一次內部的緩衝中的資料。將資料刷到目的地中。和flush區別:flush重新整理後,流可以繼續使用,close重新整理後,會將流關閉。 io
異常的處理方式
filewriterfw = null;
trycatch(ioexceptione)finallycatch(ioexception e) }
已有檔案內容的續寫
在filewriter的構造方法中,加入true引數代表不覆蓋已有的檔案,並在已有檔案的末尾處進行資料的續寫。
\r\n
字元流:寫入流reader
filereader
子類,例項化時需指定要讀取的檔案。
第一種方式:通過字元讀取
建立乙個檔案讀取的流物件,和指定名稱的檔案相關聯。要保證該檔案是已經存在的,如果不存,會發生異常:filenotfoundexception
filereader fr = new filereader(「d:\\test.txt」);
呼叫讀取流物件的read方法。
資料型別
變數名=fr.read();
read()
:一次唯讀乙個字元,而且會自動往下讀。如果已到達流的末尾,則返回-1
while((ch=fr.read())!=-1)
第二種方式:通過字元陣列進行讀取
定義乙個字元陣列,用於儲存讀到字元。該read(char)返回的是讀到字元個數。
filereader fr = new filereader(「d:\\test.txt」);
char ch = new char[3];
int num=0;
while((num=fr.read(ch))!=-1)
fr.close();
複製文字檔案,從c盤拷貝至d盤。
在d盤建立乙個檔案,用於儲存c盤檔案中的資料。
定義讀取流和c盤檔案關聯。
通過不斷的讀寫完成資料儲存。
關閉資源
filereader fr = new filereader("d:\\aa.txt");
filewriter fw = new filewriter("d:\\tmp\\aa_copy.txt");
char ch = new char[1024];
int num=0;
while((num = fr.read(ch))!=-1)
fw.close();
fr.close();
IO 字元流 位元組流
直接和檔案互動,沒有快取區。所以即便沒有close 資料也已寫入檔案中。操作的是位元組 byte 可對任何檔案進行讀寫操作 private static void write throws ioexception private static void read throws ioexception...
I O流 字元流和位元組流
一 位元組流 1 位元組輸出流 outputstream 往指定檔案寫資料 常用方法 close 釋放資源 flush 重新整理流,並強制寫出所有的緩衝的輸出位元組 write byte b 將指定的 byte 陣列寫入到輸出流 write byte b,int off,int len 將指定byt...
io位元組流和字元流
2014 11 30 晚上 位元組流system.in是基本的 inputstream 流,system.out 是基本的 outputstream 流,如果要實現字元流從控制台讀入 bufferedreader bufferedreader new bufferreader reader inpu...