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

java IO流之BufferedReader和BufferedWriter[通俗易懂]笑霸能看懂的学习笔记

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

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

一、简介:

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

二、使用BufferedReader案列

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

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 中文乱码解决方案解决方案;

BufferedReader buf=new BufferedReader(new FileReader(filePath));
换成
InputStreamReader isr = new InputStreamReader(new FileInputStream(filePath), "UTF-8");
		BufferedReader buf=new BufferedReader(isr);

效果:

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.关闭流对象

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();
		
	}

}

在这里插入图片描述

追加代码
改动一个地方

BufferedWriter buf=new BufferedWriter(new FileWriter(filePath,true));

然后就能完成追加了
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CNN卷积神经网络原理讲解+图片识别应用(附源码)[通俗易懂]

    CNN卷积神经网络原理讲解+图片识别应用(附源码)[通俗易懂]一、机器如何识图先给大家出个脑筋急转弯:在白纸上画出一个大熊猫,一共需要几种颜色的画笔?——大家应该都知道,只需要一种黑色的画笔,只需要将大熊猫黑色的地方涂上黑色,一个大熊猫的图像就可以展现出来。我们画大熊猫的方式,其实和妈妈们的十字绣很接近——在给定的格子里,绣上不同的颜色,最后就可以展现出一幅特定的“图片”。而机器识图的方式正好和绣十字绣的方式相反,现在有了一幅图片,机器通过识别图片中…

    2022年6月14日
    42
  • chrome添加扩展程序无效_vue兼容性问题

    chrome添加扩展程序无效_vue兼容性问题chrome扩展程序中以编程方式插入内容脚本不生效的问题

    2022年4月20日
    57
  • 《MySQL必知必会》阅读笔记(一)——查询「建议收藏」

    《MySQL必知必会》阅读笔记(一)——查询「建议收藏」《MySQL必知必会》阅读笔记(一)——查询

    2022年4月21日
    56
  • cad快速选择命令快捷键_CAD快捷键,命令大全

    cad快速选择命令快捷键_CAD快捷键,命令大全一 常用 CTRL ALT 快捷键 ALT TK 如快速选择 ALT NL 线性标注 ALT VV4 快速创建四个窗口 ALT MUP 提取轮廓 Ctrl B 栅格捕捉模式控制 F9 Ctrl C 将选择的对象复制到剪切板上 Ctrl F 控制是否实现对象自动捕捉 F3 Ctrl G 栅格显示模式控制 F7 Ctrl J 重复执行上一步命令 Ctrl K 超级链接 Ctrl N 新建图形文件 C

    2025年9月6日
    12
  • webapp开发框架[通俗易懂]

    webapp开发框架[通俗易懂]前言快速增长的APP应用软件市场,以及智能手机的普及,手机应用:Native(原生)APP快速占领了APP市场,成为了APP开发的主流,但其平台的不通用性,开发成本高,多版本开发等问题,一直困扰着专业APP开发企业,和APP服务提供商。安卓和IOS的操作方式,开发模式,界面UI显示方面的差别,也使得原生APP的不同版本体验有很大的区别,光是做兼容性调测,都要花费开发企业不少的时间。近年来,另一种应用形态——基于HTML5技术的WebApp也如雨后春笋般出现,于是关于原生APP与HTML5APP

    2022年4月19日
    102
  • mysql前缀索引的索引选择性

    mysql前缀索引的索引选择性mysql前缀索引的索引选择性一.基础概念在mysql中建立前缀索引的意义在于相对于整列建立索引,前缀索引仅仅是选择该列的部分字符作为索引,减少索引的字符可以节约索引空间,从而提高索引效率,但这样也会降低索引的选择性关于索引的选择性,它是指不重复的索引值(也称为基数cardinality)和数据表的记录总数的比值,范围从1/(数据表记录总数)到1之间。索引的选择性越高则查询效率越高,因为选

    2022年5月23日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号