节点流和处理流

2025-11-17 02:09:43

节点流和处理流

节点流和处理流

基本介绍

(1)节点流可以从一个特定的数据源读写数据,如FileReader,FileWriter。

(2)处理流(包装流)是“连接”在已存在的流(节点流或处理流之上),为程序提供更为强大的读写

功能,也更加灵活,如BufferedReader、BufferedWriter。

节点流和处理流的区别和联系

(1)节点流是底层流/低级流,直接跟数据源相接。

(2)处理流(包装流)包装节点流,既可以消除不同节点流的实现差异,也可以提供更方便的方法来

完成输入输出。

(3)处理流(包装流)对节点流进行包装,使用了修饰器设计模式,不会直接与数据源相连。

处理流的功能主要体现在以下两个方面

(1)性能的提高:主要以增加缓冲的方式来提高输入输出的效率。

(2)操作的便捷:处理流可以提供一系列便捷的方法来一次输入输入大量的数据,使用更加灵活方

便。

处理流BufferedReader和BufferedWriter

1)BufferedReader和BufferedWriter属于字符流,是按照字符来读取数据的

2)关闭处理流时,只需要关闭外层流即可

(1)使用BufferedReader读取文本文件,并显示在控制台

import java.io.BufferedReader;

import java.io.FileReader;

public class BufferedReader_ {

public static void main(String[] args) throws Exception {

String filePath = "e:\\a.java";

//创建 bufferedReader

BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));

//读取

String line; //按行读取, 效率高

//说明

//1. bufferedReader.readLine() 是按行读取文件

//2. 当返回 null 时,表示文件读取完毕

while ((line = bufferedReader.readLine()) != null) {

System.out.println(line);

}

//关闭流, 这里注意,只需要关闭 BufferedReader ,因为底层会自动的去关闭 节点流

//FileReader。

/*

public void close() throws IOException {

synchronized (lock) {

if (in == null)

return;

try {

in.close();//in 就是我们传入的 new FileReader(filePath), 关闭了.

} finally {

in = null;

cb = null;

}

}

}

*/

bufferedReader.close();

}

}

(2)使用BufferedWriter将“Hello”,写入到文件中

import java.io.BufferedWriter;

import java.io.FileWriter;

import java.io.IOException;

public class BufferedWriter_ {

public static void main(String[] args) throws IOException {

String filePath = "e:\\ok.txt";

//创建 BufferedWriter

//说明:

//1. new FileWriter(filePath, true) 表示以追加的方式写入

//2. new FileWriter(filePath) , 表示以覆盖的方式写入

BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(filePath));

bufferedWriter.write("Hello");

bufferedWriter.newLine();//插入一个和系统相关的换行

bufferedWriter.write("Hello2");

bufferedWriter.newLine();

bufferedWriter.write("Hello3");

bufferedWriter.newLine();

//说明:关闭外层流即可 , 传入的 new FileWriter(filePath) ,会在底层关闭

bufferedWriter.close();

}

}

BufferedInputStream和BufferedOutputStream

BufferedInputStream是字节流,在创建BufferedInputStream时,会创建一个内部缓冲区数组。

BufferedOutputStream是字节流,实现缓冲的输出流,可以将多个字节写入底层输出流中,而不必对每次字节写入调用底层系统。

最新发表
友情链接

Copyright © 2022 流光追月·网游特刊 All Rights Reserved.