一、什么是Java OutputStream
Java OutputStream是一个抽象类,表示输出字节流的所有类的超类。OutputStream类的主要作用是将数据写入到输出流中。它提供了一些基本的方法来写入数据,如write(byte[] b)、write(byte[] b, int off, int len)、write(int b)等。
Java提供了多种OutputStream的具体实现类,便于在不同的场景下选择适合的输出流。例如,FileOutputStream可以将数据写入到文件中,ByteArrayOutputStream可以将数据写入到内存中。
二、使用Java OutputStream输出文件
1. 输出到文件
要将数据写入到文件中,可以使用FileOutputStream类。
// 创建文件输出流 FileOutputStream fos = new FileOutputStream("output.txt"); // 写入数据 fos.write("Hello World!".getBytes()); // 关闭输出流 fos.close();
以上代码会将字符串"Hello World!"写入到名为output.txt的文件中。
2. 输出到控制台
如果要将数据输出到控制台,可以使用System.out流。
// 创建字节数组输出流 ByteArrayOutputStream baos = new ByteArrayOutputStream(); // 将数据写入到字节数组输出流中 baos.write("Hello World!".getBytes()); // 输出到控制台 System.out.println(baos.toString());
以上代码会将字符串"Hello World!"输出到控制台。
3. 输出到网络
如果要将数据发送到网络中,可以使用Socket类。
// 创建套接字,并连接到指定主机和端口号 Socket socket = new Socket("www.example.com", 80); // 创建输出流 OutputStream os = socket.getOutputStream(); // 写入数据 os.write("GET / HTTP/1.1\r\n".getBytes()); os.write("Host: www.example.com\r\n".getBytes()); os.write("\r\n".getBytes()); // 关闭输出流和套接字 os.close(); socket.close();
以上代码会向www.example.com发送一个HTTP GET请求,获取网站的首页。
三、OutputStream的常用方法
OutputStream类提供了一些常用的方法,如下表所示:
方法 | 描述 |
write(byte[] b) | 将字节数组b的所有字节写入到输出流中。 |
write(byte[] b, int off, int len) | 将字节数组b中从off位置开始的len个字节写入到输出流中。 |
write(int b) | 将一个字节写入到输出流中。 |
flush() | 将缓冲区的数据写入到输出流中。 |
close() | 关闭输出流。 |
四、小结
通过Java OutputStream,我们可以将数据写入到不同的输出流中,包括文件、控制台和网络等。
值得注意的是,在使用OutputStream时,一定要及时关闭输出流,否则可能会导致文件未被正常关闭或数据未被完整发送等问题。