『壹』 在java編程寫入文件的時候需要在關閉之前使用flush()方法刷新一下,那麼讀取文件的時候需要用flush()嗎
不需要,flush是把緩存的內容強制寫入輸出流。讀的時候不存在這種問題
『貳』 JAVA:validate();是不是可有可無啊
確保組件具有有效地布局
『叄』 java OutputStream flush()方法存在的意義
java.io.OutputStream.flush()方法刷新此輸出流並強制將所有緩沖的輸出位元組被寫出。刷新的常規協定是,調用它是一個跡象表明,如果以前寫的任何位元組都被緩沖的輸出流的實現,如位元組應立即寫入到它們的目的地。
此流的預期目標是由底層的操作系統,例如一個文件,然後刷新流保證提供了一個抽象只是先前寫入的位元組流傳遞給操作系統進行寫入;它並不能保證他們實際上寫的是一個物理設備,如磁碟驅動器。
OutputStream中的flush方法不執行任何操作。
下面的示例演示java.io.OutputStream.flush()方法的用法:
packagecom.yii;
importjava.io.*;
publicclassOutputStreamDemo{
publicstaticvoidmain(String[]args){
try{
//createanewoutputstream
OutputStreamos=newFileOutputStream("test.txt");
//craeteanewinputstream
InputStreamis=newFileInputStream("test.txt");
//writesomething
os.write('A');
//
os.flush();
//writesomethingelse
os.write('B');
//readwhatwewrote
System.out.println(""+is.available());
}catch(Exceptionex){
ex.printStackTrace();
}
}
}
將產生以下結果:
『肆』 java中flush()刷新緩沖區有什麼作用
我的理解來:輸出流呢,自類似於一根管道,輸出的時候先放到管道里,然後管道滿了存到介質上(硬碟或其他地方),當我們輸出完後管道裡面可能還有剩餘,就用flush()清空管道即全部存到介質上。好象java默認的緩沖區是8kb?(我也忘了),就是說只有每填滿8kb才會提交一次,當少於這個值時就不會提交,所以最後為防止有未提交數據就flush()一下,強行提交生於數據
也就是說,一般輸出流關閉之前要用下這個方法。
『伍』 java的文件包上出現了一個小問號是怎麼回事
選中工程, alt + F5, 然後勾上下方的"force update of snapshots/releases", 然後OK進行強制刷新, 嘆號就沒了. 使用maven了吧? 偶爾會出現這個問題, 強刷一下就好了
『陸』 java中flush()函數的作用是什麼
flush()意思是把緩沖區的內容強制的寫出。 因為操作系統的某些機制,為了防止一直不停地磁碟讀寫,所以有了延遲寫入的概念,(注意不要和frush()刷新混淆了)
主要用在IO中,即清空緩沖區數據,一般在讀寫流(stream)的時候,數據是先被讀到了內存中,再把數據寫到文件中,當你數據讀完的時候不代表你的數據已經寫完了,因為還有一部分有可能會留在內存這個緩沖區中。這時候如果你調用了close()方法關閉了讀寫流,那麼這部分數據就會丟失,所以應該在關閉讀寫流之前先flush()。。
在網路web伺服器上也是,為了防止寫一個位元組就發送一個消息,所以有緩沖區的概念,比如64K的內存區域,緩沖區寫滿了再一次性寫入磁碟之中(或者發送給客戶端瀏覽器)。
flush方法一般是程序寫入完成時執行。隨後跟著close方法。例如:
// 取得輸出流。當然,看具體環境。
PrintWriter out = Util.getWriter();
out.println("輸出一些信息,可能很多");
out.flush();
out.close();