缓冲字符流、文件字符流

devtools/2024/9/24 16:26:49/

BufferedInputStream

字节缓冲输入流:

1.是一个高级流,内部维护一个缓冲区,默认8KB

2.读取文件数据时一次性尽可能读取到缓冲区大小的字节

3.read方法从缓冲区获取数据:当缓冲区全部读完,会再次从磁盘上读取数据存储到缓冲区

4.常用构造器  BufferedInputStream(InputStream is)  BufferedInputStream(InputStream is,int size)

java">public class BufferedInputStreamDemo01 {public static void main(String[] args) {BufferedInputStream bis = null;try{bis = new BufferedInputStream(new FileInputStream("D:/file1.txt"),10);int ch = bis.read();System.out.println((char)ch);//一次性读取多点字节   byte[] byte = new byte[10];int length = -1;for((length = bis.read(byte)) != -1){String str =new String(byte,0,length);System.out.println(str);}    }catch (IOException e){e.printStackTrace();}finally {try {bis.close();} catch (IOException e) {e.printStackTrace();}}}
}

BufferOutputStream

字节缓冲输出:

1. 内部维护了一个字节数组作为缓冲区(缓存)  : 默认值是8KB
2. 当我们写数据时,是先写到缓存中的, 并不是直接写到磁盘上。当缓存满的情况下,再一次性将数据写到磁盘,从而减少了与磁盘的交互次数,提高了写出效率。
3.最后一次写入到缓存后,有可能没有装满,可以调用flush方法,将其强制写到磁盘上
4.构造器:BuffertOutputStream(OutputSream os)   BuffertOutputStream(OutputSream os,int size)size用于自定义缓冲区的大小
java">public class BufferedOutputStreamDemo01 {public static void main(String[] args) {BufferedOutputStream bos = null;FileOutputStream fos = null;try{fos = new FileOutputStream("D:/file2.txt",true);bos new BufferOutStream(fos);bos.write('A');byte[] bytes = "hello word".getBytes("UTF-8");bos.write(bytes,0,bytes.length);bos.flush();}catch (IOException e){e.printStackTrace();}finally {try {/** 多个流的关闭顺序: 应该先关闭高级流,然后再关低级流* 不过,可以直接关闭高级流。*/
//                bos.close();fos.close();} catch (IOException e) {e.printStackTrace();}}}
}


http://www.ppmy.cn/devtools/92452.html

相关文章

前端实现文件下载常用几种方式

项目中前端下载一般分为两种情况: 后端直接提供一个文件地址,通过浏览器打开就可以下载。需要发送请求,后端返回二进制流数据,前端解析流数据,生成URL实现下载。 前端对应的实质是a标签和Blob文件下载,这…

.gitignore 忽略文件不生效如何处理?

近期因为写了一个自动打包发布脚本,需要再项目中增加一个 uses.ts 文件,里面记录了用户名、密码、服务器地址、文件夹等等信息,虽然确实是方便了很多,但是跑完流程后,发现这样会有安全问题,太多关键信息上传…

微信小程序【五】摇骰子

摇骰子 一、dice.js二、dice.json三、dice.wxml四、dice.wxss 效果简述:点击设置“骰子个数”,喝一杯前,先摇一摇。 骰子图片命名示例: 1.png、2.png 一、dice.js Page({data: {numDice: 1, // 初始化骰子数diceImages: [],dic…

安装 Zookeeper

安装 Zookeeper 安装 Zookeeper cd /opt tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz mv apache-zookeeper-3.5.7-bin /opt/zookeeper//修改配置文件 cd /opt/zookeeper/conf/ cp zoo_sample.cfg zoo.cfgvim zoo.cfg tickTime2000 #通信心跳时间,Zookeeper服务…

记一次 .NET某智慧出行系统 CPU爆高分析

一:背景 1. 讲故事 前些天有位朋友找到我,说他们的系统出现了CPU 100%的情况,让你帮忙看一下怎么回事?dump也拿到了,本想着这种情况让他多抓几个,既然有了就拿现有的分析吧。 二:WinDbg 分析…

接口隔离原则

接口隔离原则 接口隔离原则就是客户端不应该依赖它不需要的接口,或者说类间的依赖关系应该建立在最小的接口上。 我们以搜索美女为例,设计了如下的类图: 源代码如下。美女及其实现类: 搜索程序及其子类源代码如下: 最…

什么是前端微服务,有何优势

随着互联网技术的发展,传统的单体应用架构已经无法满足复杂业务场景的需求。微服务架构的兴起为后端应用的开发和部署提供了灵活性和可扩展性。与此同时,前端开发也经历了类似的演变,前端微服务作为一种新兴的架构模式应运而生。 一、前端微服…

C++ CMake FFmpeg配置

SDK下载 github 环境变量配置 cmake_modules/FindFFmpeg.cmake # This module defines the following variables: # # FFmpeg_FOUND - All required components and the core library were found # FFmpeg_INCLUDE_DIRS - Combined list of all components includ…