『壹』 在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();