流按操作型別分為兩種: 位元組流與字元流。位元組流可以操作任何資料,字元流只能操作純字元資料,比較方便;
位元組流: 基本操作與字元流相同, 位元組流可以操作任意型別資料;
位元組流和字元流的區別:
<1>位元組流用來讀取位元組資料;
<2>字元流用來讀取字元資料;
<3>由於計算機中儲存和傳輸資料是以位元組的形式,所以位元組流可以操作任意型別資料;
<4>在所有位元組都對應字元的時候,使用字元流操作更方便;
**示例
file infile = new file("f:\\a\\1.***");
file outfile = new file("e:\\abc.***");
//建立資料通道
fileinputstream fileinputstream = new fileinputstream(infile);
fileoutputstream fileoutputstream = new fileoutputstream(outfile);
//建立緩衝位元組陣列,邊讀邊寫
byte buf = new
byte
[1024];
int length =0 ; //用於記錄每次讀取的位元組個數
while((length=fileinputstream.read(buf))!=-1)
//關閉資源
fileoutputstream.close();
fileinputstream.close();
位元組流和字元流使用是非常相似的,那麼除了操作**的不同之外,還有哪些不同呢?
位元組流在操作的時候本身是不會用到緩衝區(記憶體)的,是與檔案本身直接操作的,而字元流在操作的時候是使用到緩衝區的
位元組流在操作檔案時,即使不關閉資源(close方法),檔案也能輸出,但是如果字元流不使用close方法的話,則不會輸出任何內容,說明字元流用的是緩衝區,並且可以使用flush方法強制進行重新整理緩衝區,這時才能在不close的情況下輸出內容
reader是使用字元的方式從檔案中取出資料,reader類的定義如下:
public abstract class reader extends objects implements readable,closeable
reader本身也是抽象類,如果現在要從檔案中讀取內容,則可以直接使用filereader子類。
filereader的構造方法定義如下:
public filereader(file file)throws filenotfoundexception
以字元陣列的形式讀取出資料:
public
class test
}
public
class test16
}
public
class test12
}
Java學習筆記 IO流
inputstream和outputstream是抽象類,他們是所有位元組輸入流和輸出流的父類。public static void main string args throws ioexceptionpublic static void main string args throws ioexc...
Java學習筆記 IO流
強制重新整理 os.flush 釋放資源,關閉流,遵循先開啟後關閉原則 os.close is.close public class test catch filenotfoundexception e catch ioexception e finally catch ioexception e ...
Java學習筆記之 IO流之列印流
列印流 三個常量 1.system.in 輸入流 2.system.out 輸出流 除錯 列印日誌 3.system.err 列印出的顏色是紅色的 重定向setin setout seterr 下面為demo public class printstreamdemo01 我們可以看到檔案如下 然後我...