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