📅  最后修改于: 2023-12-03 15:31:54.926000             🧑  作者: Mango
在Java中,PrintStream类提供了一个名为flush()的方法。这个方法强制将缓冲输出流中的任何数据都写入到目的地。
PrintStream的flush()方法没有参数,返回值为void。
下面是一个简单的示例,展示了PrintStream的flush()方法的用法:
import java.io.*;
public class FlushExample {
public static void main(String[] args) {
try {
FileOutputStream fos = new FileOutputStream("output.txt");
PrintStream ps = new PrintStream(fos);
ps.print("Hello World!");
ps.flush(); // 强制将缓冲输出流中的数据写入到目的地
ps.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}
在这个示例中,我们在程序中创建了一个PrintStream对象,并将它绑定到一个OutputStream对象,这里是FileOutputStream("output.txt")。
然后我们使用PrintStream对象的print()方法将一些数据输出到输出流中。最后,我们调用了PrintStream对象的flush()方法强制将缓冲输出流中的数据写入到目的地。
如果我们不调用flush()方法,那么输出数据可能仍然留在缓冲区中,直到输出流被关闭或缓冲区满了为止。
在上面的示例中,我们的代码会将"Hello World!"写入到文件"output.txt"中。如果我们没有调用PrintStream对象的flush()方法,输出数据可能会留在缓冲区中,而没有真正被写入文件中。
调用flush()方法会强制将缓冲区中的所有数据都写入到输出流中。这很有用,当输出缓冲区中只有一部分数据时,我们可以调用flush()方法来将这部分数据写入输出流,而不需要关闭输出流。