添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

一、简介:


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();//底层会自动关闭节点流

e70ff6ba95cb4c90aee535062d468878.png


可见上面代码中文乱码了


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();//底层会自动关闭节点流


22a86e077c4f47cca0ee32031d2187eb.png


三、BufferedWriter使用案例

2ad9a0543d9e42b98cec428b44b1ec43.png


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


25eaf08af5a14f8aaf8514fdb8dfada3.png


追加代码


改动一个地方


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



然后就能完成追加了

fb39fc3e463f442a900f3a24cb9b2339.png

一转眼,都2023年了,你是否在满意的公司?拿着理想的薪水? 虽然“钱多、事少、离家近”的工作可能离技术人比较远,但是找到一份合适的工作,其实并不像想象中那么难。但是,有些技术人确实是认真努力工作,但在面试时表现出的能力水平却不足以通过面试,或拿到高薪,其实不外乎以下 2 个原因: 第一,“知其然不知其所以然”。做了多年技术,开发了很多业务应用,但似乎并未思考过种种技术选择背后的逻辑。所以,他无法向面试官展现出自己未来技术能力的成长潜力。面试官也不会放心把具有一定深度的任务交给他。 第二,知识碎片化,不成系统。在面试中,面试者似乎无法完整、清晰地描述自己所开发的系统,或者使用的相关技术。