在Java中,OutputStream
和FileOutputStream
都是处理输出流的类,但它们之间有一些关系和区别。
OutputStream:
OutputStream
是Java中所有字节输出流类的超类(基类),它定义了一些基本的方法,如write()
、flush()
和close()
等。这些方法用于向输出流写入数据、刷新缓冲区和关闭输出流。OutputStream
是一个抽象类,不能直接实例化,通常需要使用其子类来实现具体的输出操作。
FileOutputStream:
FileOutputStream
是OutputStream
的一个子类,用于将数据写入文件。它实现了OutputStream
中定义的方法,并提供了一些额外的方法,如getFD()
和getChannel()
等,用于获取文件描述符和文件通道。FileOutputStream
可以用于创建新文件或追加到现有文件。
关系:
FileOutputStream
继承自OutputStream
,这意味着FileOutputStream
是OutputStream
的一个特殊化版本,专门用于处理文件输出。当你需要将数据写入文件时,可以使用FileOutputStream
。由于FileOutputStream
继承自OutputStream
,它也可以被视为一个更具体的输出流类型。
示例:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class OutputStreamExample {
public static void main(String[] args) {
File file = new File("output.txt");
try (OutputStream outputStream = new FileOutputStream(file)) {
String data = "Hello, World!";
byte[] bytes = data.getBytes();
outputStream.write(bytes);
} catch (IOException e) {
e.printStackTrace();
}
}
}
在这个示例中,我们创建了一个FileOutputStream
对象,将数据写入名为output.txt
的文件。FileOutputStream
是OutputStream
的一个子类,因此我们可以将其视为一个更具体的输出流类型。