位元組緩衝流 1.BufferedOutputStream:該類實現緩衝輸出流,通過設置這樣的輸出流,應用程式可以向底層輸出流寫入位元組,而不必為寫入的每個位元組導致底層系統的調用 2.BufferedInputStream:創建BufferedIntputStream將創建一個內部緩衝去數組,當從流中讀 ...
位元組緩衝流
1.BufferedOutputStream:該類實現緩衝輸出流,通過設置這樣的輸出流,應用程式可以向底層輸出流寫入位元組,而不必為寫入的每個位元組導致底層系統的調用
2.BufferedInputStream:創建BufferedIntputStream將創建一個內部緩衝區數組,當從流中讀取或者跳過位元組時,內部緩衝去將根據需要從所包含的輸入流中重新填充,一次很多位元組
構造方法:
位元組緩衝輸出流:BufferedOutputStream(OutputStream out):創建一個新的緩衝輸出流,以將數據寫入指定的底層輸出流。
位元組緩衝輸入流:BufferedInputStream(InputStream in):創建一個 BufferedInputStream
並保存其參數,輸入流 in
供以後使用。
為什麼構造方法需要的時位元組流而不是具體的文件名或者路徑?
因為位元組緩衝流僅僅提供緩衝區,而真正的讀寫數據還得依靠基本的位元組流對象進行操作
public class Demo04 {
public static void main(String[] args) throws IOException {
//創建位元組緩衝輸出流
BufferedOutputStream bops=new BufferedOutputStream(new FileOutputStream("E:\\abc.txt"));
//創建位元組緩衝輸入流
BufferedInputStream bips=new BufferedInputStream(new FileInputStream("E:\\abc.txt"));
//寫數據
bops.write("hello\r\n".getBytes());
bops.write("world\r\n".getBytes());
bops.close();
//讀數據,方式一
int by;
while((by=bips.read())!=-1){
System.out.print((char)by);
}
System.out.println("------------------------------------------------");
//方式二 一次讀取一個位元組數組
byte[]bytes=new byte[1024];
int len;
while((len=bips.read(bytes))!=-1){
System.out.print(new String(bytes,0,len));
}
bips.close();
}
}