當前位置:首頁 » 編程語言 » flushjava

flushjava

發布時間: 2025-03-03 04:27:01

『壹』 java ByteArrayOutputStream flush

flush
public void flush()throws IOException
刷新此輸出流並強制寫出所有緩沖的輸出位元組。flush 的常規協定是:如果此輸出流的實現已經緩沖了以前寫入的任何位元組,則調用此方法指示應將這些位元組立即寫入它們預期的目標。
什麼是預期的目標?比如對於輸入出流FileOutputStream("1.txt"),文件"1.txt"就是它預期的目標。上體請看下面的程序。
import java.io.*;
public class AboutFlush
{
public static void main(String args[]){
try{
FileInputStream fis=new FileInputStream("1.pdf");
FileOutputStream fos=new FileOutputStream("2.pdf");
byte b[]=new byte[20];
int number;
while((number=fis.read(b))!=-1){
fos.write(b, 0, number);
//flush 你也可以在這里用。但一般不提倡
//將數據先存入緩沖區有利於提高效率
//不過,有時是必要的。
}
fos.flush();//這里,是指將所有的數據,全部寫入輸出流"2.pdf"
fis.close();
fos.close();
}catch(IOException e){}
}
}
//當然,對於ByteArrayOutputStream來說,它的目標是一個數組,將數據寫入
//這個數組。當然,最後可以一次性寫入一個輸出流(用writeTo方法)。那麼
//它的過程是:自主地將數據先寫入數組,再全部寫入某個輸出流。那麼,flush
//貌似沒有意義了。因為,對於寫入內存數組來說,不可能再先緩存進某個
//緩沖區(那樣沒什麼意義)。而ByteArrayOutputStream的預期目標肯定是
//在創建對象時隱式生成的數組緩沖區,而不可能是writeTo的對象(因為這個
//對象是可變的,只有在寫入時才指定)。所以,俺認為flush對於
//ByteArrayOutputStream來說,沒有意義

『貳』 java bufferedwriter flush 必要性問題

public class BufferedWriterextends Writer將文本寫入字元輸出流,緩沖各個字元,從而提供單個字元、數組和字元串的高效寫入。

可以指定緩沖區的大小,或者接受默認的大小。在大多數情況下,默認值就足夠大了。

flush是刷新該流的緩沖,就是將緩沖區里的內容全部刷出去, 這與大緩沖區大小無關。而該類提供的 newLine() 方法,它使用平台自己的行分隔符概念,此概念由系統屬性 line.separator 定義。並非所有平台都使用新行符 ('\n') 來終止各行。因此調用此方法來終止每個輸出行要優於直接寫入新行符。

以上主要來自java api

熱點內容
計算幾何c語言描述 發布:2025-03-03 17:07:25 瀏覽:273
哈佛黑標是什麼配置 發布:2025-03-03 16:54:30 瀏覽:387
武林志怎麼改配置 發布:2025-03-03 16:49:53 瀏覽:12
編程珠璣第二版 發布:2025-03-03 16:24:50 瀏覽:60
國網統一許可權密碼是多少 發布:2025-03-03 16:24:07 瀏覽:130
如何打開通訊錄的密碼 發布:2025-03-03 15:53:13 瀏覽:63
c語言中a2 發布:2025-03-03 15:25:42 瀏覽:556
黃箱演算法 發布:2025-03-03 15:20:46 瀏覽:768
php的ppt 發布:2025-03-03 15:20:42 瀏覽:43
日誌伺服器怎麼搭建 發布:2025-03-03 15:16:10 瀏覽:700