IO流(缓冲流)

news2024/11/26 10:50:08


 

1.字节缓冲流

  • 原理:字节缓冲输入流自带8KB缓冲池;字节缓冲输出流自带8KB缓冲池
public static void main(String[] args) throws IOException {
        try(
            InputStream is = new FileInputStream("D:\\pt\\123.jpg");
            //1.定义一个字节缓冲输入流包装原始的字节输入流
            InputStream bis = new BufferedInputStream(is,8192 * 2);

            OutputStream os = new FileOutputStream("C:\\hhh\\123.jpg");
            //2.定义一个字节缓冲输出流包装原始的
            OutputStream bos = new BufferedOutputStream(os,8192 * 2);
        ){

        byte[] buffer = new byte[1024];

        int len;//记住每次读取了多少个字节
        while ((len = bis.read(buffer)) != -1){
            bos.write(buffer,0,len);
        }
            System.out.println("复制完成!");

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

2.字符缓冲流

BufferedReader(字符缓冲输入流)
  • 作用:自带8K的字符缓冲池,可以提高字符输入流读取字符数据的性能
public static void main(String[] args) {
        try (
                FileReader fr = new FileReader("src/666.txt");
                //创建一个字符缓冲输入流包装原始的字符输入流
                BufferedReader br = new BufferedReader(fr)
        ){
//            char[] buffer = new char[3];
//            int len;
//            while ((len = fr.read(buffer)) != -1){
//                System.out.println(new String(buffer, 0, len));
//            }
//            System.out.println(br.readLine());
//            System.out.println(br.readLine());
//            System.out.println(br.readLine());

            String line; //记住每次读取的一行数据
            while ((line = br.readLine()) != null){
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
BufferedWriter(字符缓冲输出流)
 public static void main(String[] args) {
        try (
                Writer fw = new FileWriter("src/666.txt",true);
             //
             BufferedWriter bw = new BufferedWriter(fw);

        ){

            fw.write("123");
            fw.write("6");
            fw.write("wcw");
            bw.newLine();//换行

            fw.write("123");
            fw.write('a');
            bw.newLine();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

3.案例:恢复文本的序号顺序到新文件中

public static void main(String[] args) {
        try (

             BufferedReader br = new BufferedReader(new FileReader("src/666.txt"));
             BufferedWriter bw = new BufferedWriter(new FileWriter("src/123.txt"));

        ){
            //1.定义一个ArrayList集合存放每段内容
            List<String> data = new ArrayList<>();

            //2.按照每行读取内容,存入到集合
            String line;
            while((line = br.readLine()) != null){
                data.add(line);
            }

            //3.进行排序
            Collections.sort(data);
            System.out.println(data);

            //4.遍历集合存入到新文件
            for (String l : data) {
                bw.write(l);
                bw.newLine();
            }


        } catch (IOException e) {
            e.printStackTrace();
        }
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1805666.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

看似不同的事情,却是相同的坑

目录 一、背景二、过程1.遭遇战-微盘股的下杀2.不失为一件好事3.一切向后看吧&#xff0c;最近的学习感受4.该有的心境 三、总结 一、背景 也在一点点改变&#xff0c;期间势必要经历流血的过程&#xff1b;所谓无疯狂不成长&#xff0c;积极的心态去应对&#xff0c;去总结总…

数据分析常用模型合集(一)AARRR模型和漏斗模型

准备把常用的数据分析模型&#xff0c;像什么AARRR&#xff0c;RFM之类的&#xff0c;逐个全部写一下&#xff1b; 最好能带点案例和代码&#xff0c;搞一个小合集。 最终达到完全不懂的人&#xff0c;看完就能知道得差不多&#xff1b; 数据分析常用模型合集&#xff08;二…

中心极限定理的MATLAB例

独立同分布的中心极限定理&#xff1a; 设 X 1 , X 2 , … , X n X_1, X_2, \ldots, X_n X1​,X2​,…,Xn​ 是独立同分布的随机变量序列&#xff0c;且 E ( X i ) μ E(X_i) \mu E(Xi​)μ&#xff0c; D ( X i ) σ 2 > 0 D(X_i) \sigma^2 > 0 D(Xi​)σ2>0&a…

再读高考作文题

新课标I卷&#xff1a;讨论了随着互联网和人工智能的普及&#xff0c;问题是否会变得越来越少&#xff0c;要求考生写一篇文章&#xff0c;表达自己对于这一现象的联想和思考。 从来就没有什么救世主 AI也不是​​​​​ 一直不会写作文&#xff0c;直到高中&#xff0c;才堪堪…

ssm604基于Java Web的怀旧唱片售卖系统+vue【已测试】

前言&#xff1a;&#x1f469;‍&#x1f4bb; 计算机行业的同仁们&#xff0c;大家好&#xff01;作为专注于Java领域多年的开发者&#xff0c;我非常理解实践案例的重要性。以下是一些我认为有助于提升你们技能的资源&#xff1a; &#x1f469;‍&#x1f4bb; SpringBoot…

AI Agentic Design Patterns with AutoGen(上):顺序对话、代理反思

文章目录 一、多代理对话&#xff1a;单口喜剧1.1 Agent的基本功能1.2 多代理对话示例&#xff1a;单口喜剧1.2.1 创建Agent1.2.2 开始对话1.2.3 查看对话信息&#xff0c;自定义对话摘要1.2.4 设置对话终止条件 二、顺序对话&#xff1a;客户入职2.1 创建Agent2.2 构建顺序对话…

profile-3d-contrib,github三维立体图的使用

图片展示: 参考: https://zhuanlan.zhihu.com/p/681786778 原仓库链接&#xff1a; GitHub - yoshi389111/github-profile-3d-contrib: This GitHub Action creates a GitHub contribution calendar on a 3D profile image. 第一步 在你的个人仓库下找到Actions 第二步 点…

揭秘:币圈黑科技私钥碰撞器的项目教程玩法,外面竟然收费200+

一、前言&#xff1a;探寻币圈私钥探测器神秘面纱 在风华正茂的币圈&#xff0c;不仅有无数高涨或者暴跌的数字货币&#xff0c;更有许多被誉为“黑科技”的工具备受热议。其中&#xff0c;私钥碰撞器就是这些黑科技中的一员&#xff0c;它能够搜索并碰撞出特定地址的私钥&…

嘉立创面板制作不规则图案技巧

首先附上效果图展示&#xff1a; 所需软件&#xff1a;嘉立创EDA(专业版)、photoshop、Adobe Illustrator 嘉立创EDA(专业版)&#xff1a; 嘉立创面板绘制很容易上手&#xff0c;只要了解这几个图层的作用便可以做出自己想要的面板。 材料边界层&#xff1a; 代表选⽤的材料…

SpringAI的Transform入门

Transform转换 帮助将文档分割以适应 AI 模型的上下文窗口。 假如我们想要用 openai api 对一个段文本进行总结&#xff0c;我们通常的做法就是直接发给 api 让他总结。但是如果文本超过了 api 最大的 token 限制就会报错。这时&#xff0c;我们一般会进行对文章进行分段&#…

Linux线程安全:线程互斥

一、线程互斥的概念 1.1临界资源与互斥的关系 临界资源&#xff1a;多线程执行流共享的资源就叫做临界资源。 临界区&#xff1a;每个线程内部&#xff0c;访问临界资源的代码&#xff0c;就叫做临界区。 互斥&#xff1a;任何时刻&#xff0c;互斥保证有且只有一个执行流进入…

[书生·浦语大模型实战营]——LMDeploy 量化部署 LLM 实践

1.基础作业 1.1配置 LMDeploy 运行环境 创建开发机 创建新的开发机&#xff0c;选择镜像Cuda12.2-conda&#xff1b;选择10% A100*1GPU&#xff1b;点击“立即创建”。注意请不要选择Cuda11.7-conda的镜像&#xff0c;新版本的lmdeploy会出现兼容性问题。其他和之前一样&…

算法刷题【二分法】

题目&#xff1a; 注意题目中说明了数据时非递减的&#xff0c;那么这样就存在二分性&#xff0c;能够实现logn的复杂度。二分法每次只能取寻找特定的某一个值&#xff0c;所以我们要分别求左端点和有端点。 分析第一组用例得到结果如下: 成功找到左端点8 由此可知&#xff0…

【SpringBoot + Vue 尚庭公寓实战】标签和配套管理接口实现接口实现(六)

【SpringBoot Vue 尚庭公寓实战】标签和配套管理接口实现接口实现&#xff08;六&#xff09; 文章目录 【SpringBoot Vue 尚庭公寓实战】标签和配套管理接口实现接口实现&#xff08;六&#xff09;1、保存或更新标签信息2、根据id删除标签信息3、根据类型查询配套列表4、新…

Vite - 开发初体验,以及按需导入配置

目录 开始 创建一个 Vite 项目 项目结构 /src/main.js index.html package.json vite.config.js Vite 项目中使用 vue-router Vite 组件的“按需引入” 传统的方式引入一个组件 传统方式引入带来的问题 解决办法&#xff08;配置 按需引入 插件&#xff09; 示例&…

CBoard开源数据可视化工具

CBoard开源数据可视化工具 文章目录 CBoard开源数据可视化工具介绍资源列表基础环境一、安装JDK二、安装Maven2.1、安装Maven2.2、配置Maven 三、安装Tomcat8四、安装MySQL5版本4.1、安装相关依赖4.2、二进制安装4.3、设定配置文件4.4、配置systemcatl方式启动4.5、访问MySQL数…

PVE|中小型虚拟化平台|proxmox-ve的安装部署和初步使用

一、 虚拟化平台简单介绍 市面上虚拟化工具或者说虚拟机平台是非常多的&#xff0c;比如&#xff0c;openshifit&#xff0c;open stack&#xff0c;华为云的魔改open stack 的HCE&#xff0c;VMware workstation&#xff0c;VMware sphere&#xff0c;VMware esix&#xff0…

2024年11个博客初学者建议

博客仍然是在线赚钱的最佳机会之一&#xff0c;因为您可以吸引受众&#xff0c;然后销售产品、服务或赞助。 然而&#xff0c;如果您刚刚开始博客生涯&#xff0c;那么建立一个可以带来数千美元收入的博客的前景可能会让您感到畏惧。 博客领域的竞争比以往更加激烈&#xff0…

稀疏高效扩散模型:推动扩散模型的部署与应用

数据驱动的世界中&#xff0c;生成模型扮演着至关重要的角色&#xff0c;尤其是在需要创建逼真样本的任务中。扩散模型&#xff08;Diffusion Models, DM&#xff09;&#xff0c;以其卓越的样本质量和广泛的模式覆盖能力&#xff0c;已经成为众多数据生成任务的首选。然而&…

【图论】Leetcode 130. 被围绕的区域【中等】

被围绕的区域 给你一个 m x n 的矩阵 board &#xff0c;由若干字符 ‘X’ 和 ‘O’ &#xff0c;找到所有被 ‘X’ 围绕的区域&#xff0c;并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。 示例 1&#xff1a; 输入&#xff1a; board [[“X”,“X”,“X”,“X”],[“X”,“O…