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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Double转换BigDecimal的精度问题

    Double转换BigDecimal的精度问题在使用一些高精度的计算的时候是需要注意的 当使用第一种方式的时候 ide 也会有提示你使用字符串转换

    2025年9月17日
    1
  • finsh AJax

    finsh AJax2019独角兽企业重金招聘Python工程师标准>>>…

    2022年5月11日
    33
  • 数组对象转json格式[通俗易懂]

    数组对象转json格式[通俗易懂]1、数组转化成JSON对象后,key值是索引,value是数组对应的值。//数组也可以转化成JSON对象varjStr3="[[10,20,30],40,50,60]";varj3=JSON.parse(jStr3);for(letkeyinj3){console.log(‘key:’,key);}//key…

    2022年9月18日
    2
  • 毕业——少年,你还太弱,请专心练剑

    有段时间没有更新博客,一是比较忙,二是考虑自己的博客内容。之前的博客都是自己的学习记录,输入的同时做了输出,自己思考了一下主要就是以下几类:1、一些比较常见的知识点,像这些都是本来就已经存在的内容,我只是做了一次梳理按照我的逻辑整理出来,就算我不整理,也能找的到,所以我觉得存在的必要性并不大。2、错误记录,自己学习和开发过程中遇到的各种问题,对于遇到类似问题的同学可能有所帮助。3、自己的经验总结,这

    2022年3月11日
    52
  • 错位排序公式_完全错位排列数

    错位排序公式_完全错位排列数首先,对于D(n),有1~n这样n个元素错排,所以对于第一个元素①,它现在可能的位置有(n-1)个,倘若它在第k个元素的位置上,对于第k个元素而言,它所在的位置就有两种可能—第一种,它处在非第一个元素①位置上,所以对于接下来的排列就相当于是n-1个元素的错排,即D(n-1);第二种,它处在第一个元素①的位置上,所以在排列D(n)中有两个元素找到了位置,那么接下来的队列就相当于是n-2个元素的错排。…

    2025年8月15日
    7
  • VS2013注册码_vs激活码怎么用

    VS2013注册码_vs激活码怎么用vs2012注册码YKCW6-BPFPF-BT8C9-7DCTH-QXGWCRBCXF-CVBGR-382MK-DFHJ4-C69G8MMVJ9-FKY74-W449Y-RB79G-8GJGJ4D974-9QX42-9Y43G-YJ7JG-JDYBPYCFHQ-9DWCY-DKV88-T2TMH-G7BHP亲测有效!

    2022年8月31日
    4

发表回复

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

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