Java基础IO流介绍之五——什么是字符流过滤流、常用的字符过滤流有哪些
字符流的过滤流
1、字符缓冲流——BufferedReader/BufferedWriter
1、构造方法
BufferedReader(Reader in)
创建使用默认大小的输入缓冲区的缓冲字符输入流。
BufferedWriter(Writer out)
创建使用默认大小的输出缓冲区的缓冲字符输出流。
2、常用方法
BufferedReader:
String readLine()
读一行文字。
BufferedWriter:
void newLine() : 不同的操作系统 换行符不一样
写一行行分隔符。
//案例:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
public class Demo12 {
public static void main(String[] args) throws Exception{
//创建两个File对象
File srcFile = new File("file/a.txt");
//创建节点字符流
FileReader fileReader = new FileReader(srcFile);
//增强功能
BufferedReader bufferedReader = new BufferedReader(fileReader);
// String s1 = bufferedReader.readLine();
// System.out.println(s1);
//
// String s2 = bufferedReader.readLine();
// System.out.println(s2);
// String s;
// while ((s = bufferedReader.readLine())!=null){
// System.out.println(s);
// }
bufferedReader.close();
}
}
//案例2:
import java.io.*;
public class Demo12 {
public static void main(String[] args) throws Exception{
//创建两个File对象
File srcFile = new File("file/a.txt");
//创建字符流 节点流
FileWriter fileWriter = new FileWriter(srcFile);
//过滤流
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write("春眠不觉晓");
bufferedWriter.newLine();
bufferedWriter.write("处处蚊子咬");
bufferedWriter.newLine();
bufferedWriter.write("夜来风雨声");
bufferedWriter.newLine();
bufferedWriter.write("大包知多少");
bufferedWriter.newLine();
bufferedWriter.close();
}
}
2、PrintWriter流
1、概述
PrintWriter介绍:
是Writer子类,是字符流,有一个缓冲区,就涉及到一个刷新的功能。
和PrintStream一样,也是有很多的print和println的方法,其中打印的方法也基本相同
提供了带有自动刷新的功能,但是开启自动刷新仅仅对println()、printf()、format()方法有效
2、构造方法
方法名 | 说明 |
---|---|
PrintWriter(File file) | 使用指定文件创建不具有自动行刷新的新 PrintWriter。 |
PrintWriter(OutputStream out) | 根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。 |
PrintWriter(OutputStream out, boolean autoFlush) | 通过现有的 OutputStream 创建新的 PrintWriter。 |
PrintWriter(String fileName) | 创建具有指定文件名称且不带自动行刷新的新 PrintWriter。 |
PrintWriter(Writer out) | 创建不带自动行刷新的新 PrintWriter。 |
PrintWriter(Writer out, boolean autoFlush) | 创建新 PrintWriter。自动刷新 |
//案例:
import java.awt.datatransfer.FlavorEvent;
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.io.PrintWriter;
public class Demo13 {
public static void main(String[] args) throws Exception {
File file = new File("file/a.txt");
//PrintWriter printWriter = new PrintWriter(file);
FileOutputStream fileOutputStream = new FileOutputStream(file);
PrintWriter printWriter = new PrintWriter(fileOutputStream,true);
//PrintWriter printWriter = new PrintWriter(System.out);
printWriter.println("所说的发生发撒打发十分大");
}
}
分类:
I/O流
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架