文件输入输出处理(四)-字符缓冲流
2023-06-13 09:14:10 时间
大佬的理解->《Java IO(五) -- 字符流进阶及BufferedWriter,BufferedReader》
1、BufferedReader
BufferedReader高效字符流读取文件基本用法,自带缓冲区,读取文件效率高,支持逐行读取;
1.1 初始化
BufferedReader(Reader in) | 默认缓冲字符数组(大小8192) |
---|---|
BufferedReader(Reader in, int sz) | 自定义缓冲字符数组大小 |
1.2 读取文件内容
buffer1.txt文件内容
张三,23
李四,34
王五,34
逐行读取案例
try(BufferedReader bfrd = new BufferedReader(new FileReader("D:/test/buffer1.txt"))){
//使用逐行读取方式,读取文件
String readLinestr = bfrd.readLine();
//当读取内容为null的时候跳出循环
while(readLinestr != null){
System.out.println(readLinestr);
//继续读取下一行
readLinestr = bfrd.readLine();
}
System.out.println("逐行读取成功");
}catch (Exception e){
e.printStackTrace();
}
运行结果
张三,23
李四,34
王五,34
逐行读取成功
1.3 默认缓冲区
//默认缓冲区的大小为:8192个字符
源码
public BufferedReader(Reader in) {
this(in, defaultCharBufferSize); //使用默认字符数组容量
}
private static int defaultCharBufferSize = 8192; //默认最大值为8192
2、BufferedWriter
BufferedWriter高效字符流写入文件基本用法,可以直接写整行,还可以换行(newLine());
2.1 初始化
BufferedWriter(Writer out) | 默认缓冲字符数组(大小8192) |
---|---|
BufferedWriter(Writer out, int sz) | 自定义缓冲字符数组大小 |
2.2写入文件内容
try(BufferedWriter bfwt = new BufferedWriter(new FileWriter("D:/test/buffer2.txt"))){
//写入内容
String string = "KH96,正在学习高效字符流写入";
//写入
bfwt.write(string);
//换行
bfwt.newLine();
bfwt.write(string+",新的一行");
//刷新缓冲区
bfwt.flush();
System.out.println("高效字符写入完成");
}catch (Exception e){
e.printStackTrace();
}
3、InputStreamReader
InputStreamReader(InputStream in) | 默认本地字符集 |
---|---|
InputStreamReader(InputStream in, String charsetName) | 自定义字符集 |
BufferedReader 通过InputStreamReader可以指定字符集读取文件的内容;
try(
//InputStreamReader提供了一个指定字符集的构造方法,创建输入字符对象,必须指定字符集跟文件字符集一致
BufferedReader bfrd = new BufferedReader(new InputStreamReader(new FileInputStream("D:/test/end1.txt"),"gbk"))
){
//使用逐行读取方式,读取文件
String readLinestr = bfrd.readLine();
//循环读取,读取到文件末尾,返回null
while(readLinestr != null){
System.out.println(readLinestr);
//继续读取下一行
readLinestr = bfrd.readLine();
}
System.out.println("逐行读取成功");
}catch (Exception e) {
e.printStackTrace();
}
4、 OutputStreamWriter
OutputStreamWriter(OutputStream out) | 默认本地字符集 |
---|---|
OutputStreamWriter(OutputStream out, String charsetName) | 自定义字符集 |
BufferedWriter 通过OutputStreamWriter可以指定字符集写入文件的内容;
try(
BufferedWriter bfrwt = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("D:/test/end1.txt"),"gbk"))
){
String str = "测试指定文件字符集为gbk写入";
bfrwt.write(str);
System.out.println("文件写入完成!!!");
}catch (Exception e) {
e.printStackTrace();
}
相关文章
- 【翻译】研究表明--保护公共AWS SSM文件的必要性
- matlab循环读取txt文件
- iOS开发证书发布证书,推送证书,描述文件的生成总集(一)
- 怎么快速 把一个 监听事件 变成 一个 内部类 在编程一个新的 java文件
- 【Android 逆向】Linux 文件分类 ( 普通文件 | 目录文件 | 链接文件 | 字符设备文件 | 管道文件 | 块设备文件 )
- 【Android 逆向】使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )
- 【C 语言】文件操作 ( 按照单个字符的方式读写文件 | fgetc 函数 | fputc 函数 )
- 如何处理Xcode上传IPA文件后无法在后台架构版本中显示的问题?
- PHP 中获取文件扩展名的正确方法
- python基础3之文件操作、字符编码解码、函数介绍详解编程语言
- 文件利用Linux命令行快速删除FTP文件(linuxftp删除)
- 文件使用Oracle实现dmp文件的导入(oracle导入dmp)
- Linux实现解压RAR文件的简便指令(linux解压rar文件命令)
- 字符Linux下文件末尾追加字符的方法(linux文件末尾追加)
- Oracle数据库存储文件的安全性(oracle存储文件)
- 一键式使用Linux百度盘同步文件(linux百度盘同步)
- Linux文件中字符的替换方式(linux文件字符替换)
- 如何使用Redis查看日志文件(redis查看日志文件)
- Linux中如何判断文件是否存在(linux文件存在判断)
- Linux下快捷编辑文件的终极指令(linux编辑文件命令)
- 文件已存在Linux cp:文件已存在,操作失败(linux cp 提示)
- Linux字符连接:如何使用特殊字符将文本或文件连接到一起(linux 字符 连接)
- 夹Linux下快速新建文件夹的简易方法(linux 下新建文件)
- phpfeof用来识别文件末尾字符的方法
- Ruby中实现统计文件行数、单词数和字符数