首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java IO流之BufferedReader和BufferedWriter[通俗易懂]

java IO流之BufferedReader和BufferedWriter[通俗易懂]

作者头像
全栈程序员站长
发布2022-09-05 10:37:49
发布2022-09-05 10:37:49
62900
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

前言: 👏作者简介:我是笑霸final,一名热爱技术的在校学生。 📝个人主页:笑霸final的主页 📕系列专栏::本文写在java专栏 📧如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀 🔥如果感觉博主的文章还不错的话,👍点赞👍 + 👀关注👀 + 🤏收藏🤏

BufferedReader和BufferedWriter

一、简介:

BufferedReader 用于加快读取字符的速度, BufferedWriter 用于加快写入的速度 BufferedReader 和 BufferedWriter 类各拥有 8192 个字符的缓冲区。 属于字符流,按照字符读取数据的

二、使用BufferedReader案列

1.使用它读取文本文件,并显示在控制台 步骤; 1.创建读取的文件 2.创建BufferedReader 3.读取 4.关闭流

代码语言:javascript
代码运行次数:0
运行
复制
package com.xbfinal.day02;

import java.io.BufferedReader;
import java.io.FileReader;


/** *演示BufferedReader的使用 * */
public class BufferedReader_ { 
   
	public static void main(String[] args) throws Exception{ 
   
		
		//1.创建读取的文件
		String filePath="f:\\01.txt";
		//2.创建BufferedReader
		BufferedReader buf=new BufferedReader(new FileReader(filePath));
		//读取(其实底层是FileReader)
		String line;
		//按行读取文件,当返回null表示文件读取完毕
		while((line=buf.readLine())!=null) { 
   
			System.out.println(line);
		}
		//关闭流(本身应该关闭FileReader 但是实际上只需要关闭BufferedReader)
		buf.close();//底层会自动关闭节点流
		
	}

}

可见上面代码中文乱码了 bufferedReader会以系统默认的编码字符集获取文件内容。如果解析设置的编码字符集与系统默认编码字符集不一致,则会出现乱码问题。

BufferedReader 中文乱码解决方案解决方案;

代码语言:javascript
代码运行次数:0
运行
复制
BufferedReader buf=new BufferedReader(new FileReader(filePath));
换成
InputStreamReader isr = new InputStreamReader(new FileInputStream(filePath), "UTF-8");
		BufferedReader buf=new BufferedReader(isr);

效果:

代码语言:javascript
代码运行次数:0
运行
复制
package com.xbfinal.day02;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;


/** *演示BufferedReader的使用 * */
public class BufferedReader_ { 
   
	public static void main(String[] args) throws Exception{ 
   
		
		//1.创建读取的文件
		String filePath="f:\\01.txt";
		//2.创建BufferedReader
		InputStreamReader isr = new InputStreamReader(new FileInputStream(filePath), "UTF-8");
		BufferedReader buf=new BufferedReader(isr);
		//读取(其实底层是FileReader)
		String line;
		//按行读取文件,当返回null表示文件读取完毕
		while((line=buf.readLine())!=null) { 
   
			System.out.println(line);
		}
		//关闭流(本身应该关闭FileReader 但是实际上只需要关闭BufferedReader)
		buf.close();//底层会自动关闭节点流
		
	}

}

三、BufferedWriter使用案例

将 hello,笑霸final写入文件 步骤 1.文件写入的路径 2.创建对象 3.写入内容 4.关闭流对象

代码语言:javascript
代码运行次数:0
运行
复制
package com.xbfinal.day02;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

//演示BufferedWriter的使用

public class BufferedWriter_ { 
   
	public static void main(String[] args)throws IOException { 
   
		//文件写入的路径
		String filePath="f:\\xbfinal.txt";
		//准备写入的内容
		BufferedWriter buf=new BufferedWriter(new FileWriter(filePath));
		buf.write("hello,笑霸final");
		buf.newLine();//插入一个换行符;
		buf.write("hello1,笑霸final");
		buf.write("hello2,笑霸final");
		buf.close();
		
	}

}

追加代码 改动一个地方

代码语言:javascript
代码运行次数:0
运行
复制
BufferedWriter buf=new BufferedWriter(new FileWriter(filePath,true));

然后就能完成追加了

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137376.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • BufferedReader和BufferedWriter
  • 一、简介:
  • 二、使用BufferedReader案列
    • BufferedReader 中文乱码解决方案解决方案;
  • 三、BufferedWriter使用案例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档