Input Stream&OutputStream
在Java中,InputStream和OutputStream是用来输入和输出二进制数据的最基本的抽象类。InputStream用于读取数据,OutputStream则用于输出数据。它们定义了一些抽象方法和公共的方法,供派生类进行实现。
InputStream和OutputStream都是在java.io包中提供的,以下是一些常用方法:
InputStream中常见的方法:
- int read() - 读取一个字节的数据。如果没有可用的数据,则返回-1。
- int read(byte[] b) - 读取一定量的字节并将其存储在缓冲区中。返回读入缓冲区的字节数。
- long skip(long n) - 跳过并丢弃输入流中的n个字节数据,并返回实际跳过的字节数。
- int available() - 返回输入流中尚未读取的字节数。
OutputStream中常见的方法:
- void write(byte[] b) - 将指定字节数组中的所有数据输出到流中。
- void write(byte[] b, int off, int len) - 将指定字节数组中从偏移量off开始的len个字节的数据输出到流中。
- void write(int b) - 输出指定的字节数据。
- void flush() - 刷新输出缓冲区,并将所有缓冲的输出数据写入底层设备中。
下面是一个读取文件的示例:
InputStream inputStream = new FileInputStream("test.txt");
int x;
while((x = inputStream.read()) != -1) {
System.out.print((char)x);
}
inputStream.close();
这个示例使用FileInputStream打开一个文件,然后逐字节读取文件内容并输出到控制台。
接下来是一个将字符串写入一个文件的示例:
OutputStream outputStream = new FileOutputStream("test.txt");
String message = "Hello World!";
byte[] data = message.getBytes();
outputStream.write(data);
outputStream.close();
这个示例使用FileOutputStream创建一个文件并将字符串转换为字节数组,最后写入文件中。
总结:
InputStream和OutputStream是Java IO编程中最基本也是最常用的输入和输出二进制数据的抽象类。我们可以使用各种子类来实现基于文件,网络和其他数据源的输入和输出操作。在我们的Java开发工作中,我们需要掌握它们的常用方法和原理,以便更好地使用它们进行编程。