47-java节点流和处理流
java节点流和处理流
Java中的"节点流"和"处理流"是输入/输出(I/O)流的两种类型。
-
节点流:节点流是直接与数据源连接的流,如FileInputStream, FileOutputStream, BufferedInputStream, BufferedOutputStream等。
-
处理流:处理流是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写,如BufferedInputStream, BufferedOutputStream等。处理流的构造方法通常需要另一个流对象作为参数。
以下是使用节点流和处理流的简单示例:
节点流示例:
import java.io.*;public class NodeStreamExample {public static void main(String[] args) {try (FileOutputStream fos = new FileOutputStream("output.txt")) {String str = "Hello, World!";byte[] bytes = str.getBytes();fos.write(bytes);} catch (IOException e) {e.printStackTrace();}}
}
处理流示例:
import java.io.*;public class ProcessStreamExample {public static void main(String[] args) {try (FileInputStream fis = new FileInputStream("output.txt");BufferedInputStream bis = new BufferedInputStream(fis)) {byte[] buffer = new byte[1024];int bytesRead = bis.read(buffer);while (bytesRead != -1) {// 输出读取的内容System.out.write(buffer, 0, bytesRead);bytesRead = bis.read(buffer);}} catch (IOException e) {e.printStackTrace();}}
}
在这两个示例中,第一个使用了FileOutputStream作为节点流来写入数据到文件,第二个使用了FileInputStream作为节点流来读取文件,并且将其包装在BufferedInputStream处理流中来提高读取效率。