您的位置:

OutputStream flush详解

一、OutputStream用法

OutputStream是java.io包中的一个抽象类,是所有输出流的超类。OutputStream主要用于将数据从内存中的Java对象输出到外部文件或者网络中。它是Java I/O的一部分,用于将流输出到文件或者网络上。

在使用OutputStream时,需要先创建一个OutputStream子类的对象,如FileOutputStream或ByteArrayOutputStream等,然后使用write()方法将数据写入到OutputStream中,最后使用flush()方法将数据从内存中刷新到磁盘或网络中。

二、OutputStream转String

OutputStream是一个输出流,不能直接转化为字符串,但可以先将其输出到ByteArrayOutputStream中,然后将ByteArrayOutputStream转换为字符串。

OutputStream output = new FileOutputStream("example.txt");
output.write("hello world".getBytes());

ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while((len = output.read(buffer)) != -1) {
     baos.write(buffer, 0, len);
}
String str = baos.toString();

三、OutputStream类的方法

OutputStream类有很多方法可以使用,包括write()方法将数据写入流中,close()方法关闭流等。下面我们来了解flush()方法。

四、flush()方法作用

flush()方法的作用是将OutputStream中的数据刷新到外部文件或者网络中。在进行输出时,为了提高效率,Java会将输出的数据缓存在内存中,当缓存区满或者使用flush()方法时,数据才会被写入外部文件或网络中。

例如,在使用FileOutputStream进行文件输出时,如果不使用flush()方法,当JVM退出时,数据可能不会被完全写入到文件中,导致文件损坏或者数据丢失。

下面是一个使用OutputStream及flush()方法的示例:

OutputStream output = new FileOutputStream("example.txt");
output.write("hello world".getBytes());
output.flush();

五、FileOutputStream用法

FileOutputStream是OutputStream的一个子类,可以用于将数据输出到文件中。FileOutputStream使用时需要先指定输出的文件名,然后使用write()方法将数据写入到输出流中即可。

下面是一个使用FileOutputStream及flush()方法的示例:

FileOutputStream fos = new FileOutputStream("output.txt");
String str = "hello world";
byte[] bytes = str.getBytes();
fos.write(bytes);
fos.flush();
fos.close();