java 輸入輸出流

2021-09-11 03:55:42 字數 2094 閱讀 9565

1.位元組流與字元流:

(1)定義:

位元組流是直接操作檔案進行檔案的讀寫,而字元流是通過操作 「緩衝區」(也就是記憶體),從而操作檔案進行字元 的讀寫。

(2) 下面我們看一下兩個例子說明:

//位元組流操作

public static void main(string args) throws ioexception

找到test檔案檢視 發現裡面已經寫入了 我們想要輸出的內容。

此時沒有關閉位元組流操作,但是檔案中也依然存在了輸出的內容,證明位元組流是直接操作檔案本身的

//字元流操作

public static void main(string args) throws ioexception

此時如果沒有關閉字元流 在test檔案裡面是空白的。如果加上out.close() 重新執行程式  test檔案會顯示 我們想要輸出的字串。說明字元流是通過操作 緩衝區從而操作檔案的讀寫的。

如果想要不關閉字元流 那麼採用out.flush()方法 也可以將字元輸出出來。

所有的檔案在硬碟或在傳輸時都是以位元組的方式進行的,包括等都是按位元組的方式儲存的,而字元是只有在記憶體中才會形成,所以在開發中,位元組流使用較為廣泛。

2、包裝流或列印輸出流 printstream printwriter

(1)定義:printstream是用來封裝outputstream位元組流物件的,代替進行io操作,printwriter 不僅可以代替位元組流outputstream,還可以代替字元流 writer進行輸出!

(2)例子:

(1) //printwriter 代替位元組流進行輸出

public static void main(string args) throws ioexception catch (ioexception e)

}(2) //printwriter 代替字元流進行輸出

public static void main(string args) throws ioexception catch (ioexception e)

}(3) //printstream代替位元組流物件outputstream進行io輸出

public static void main(string args) throws ioexception catch (ioexception e)

}

3、緩衝流bufferedreader與bufferedwriter

(1)定義:

緩衝流:

再讀寫資料時,讓資料在緩緩衝區能減少系統實際對原始資料**的訪問次數,因為一次能做多個資料單位的操作,相較而言,對於從檔案讀取資料或將資料寫入檔案,比起緩衝區的讀寫要慢多了。所以使用緩衝區的 流,一般都會比沒有緩衝區的流效率更高,擁有緩衝區的流別稱為緩衝流,包括bufferedinputstream、bufferedoutputstream類和bufferedreader、bufferedwriter類。緩衝流把資料從原始流成塊讀入或把資料積累到乙個大資料塊後再成批寫出,通過減少通過資源的讀寫次數來加快程式的執行。

public static void main(string args) throws ioexception 

system.out.println(line);

}} catch (ioexception e)

}//bufferedreader是reader的子類。reader類的read()方法每次都從資料來源讀入乙個字元(兩個位元組),為了提高效率,可以採用bufferedreader來配合其他位元組流。bufferedreader帶有緩衝區,它可以先把一批資料讀入到緩衝區內。接下來的讀操作都是從緩衝區獲取資料,避免每次都從資料來源讀取資料並進行字元編碼轉換,從而提高操作效率。

//bufferedwriter類是writer的子類。與writer相比,bufferedwriter類主要改變是重寫了flush()方法,該方法可以確保緩衝區裡的資料確實被寫到輸出流中,使用bufferedwriter類時,寫入的資料並不會先輸出到目的地,而是先儲存至緩衝區。bufferedwriter流提供了緩衝區,能更有效的寫出字元流資料。

java 輸入輸出流

主要有四個主抽象類 位元組流 字元流 輸入流 inputstream reader 輸出流 outputstream wruter 節點流 從乙個特定的資料來源讀取資料 處理流 連線 在已存在的流上 節點流或者處理流 通過對資料段處理提供更強大的功能。inputstream方法 outputstre...

Java 輸入輸出流

就是資料流,傳輸資料的通道1 資料是 一連串位元組或字元 進行流動 傳輸 2 先進先出鍵盤 滑鼠 硬碟 u盤 網路顯示器 印表機 硬碟 u盤 網路1 輸出的參考是記憶體 程式 從程式輸出資料到硬碟 顯示器 網路等 2 輸入的參考是記憶體 程式 從硬碟 滑鼠 鍵盤 網路等載入資料到記憶體操作檔案與資料...

Java輸入輸出(2) 流

1.流的分類。輸入 輸出都是從程式執行所在記憶體的角度來劃分的。2.位元組流操作的最小資料單元是8位的位元組,字元流操作的最小資料單元是16位的字元。3.使用fileinputstream讀取自身 public class fileinputstreamtest 關閉檔案輸入流,放在finally塊...