java中的缓冲流
Java.io.BufferedOutputStream 字节缓冲输出流,继承自OutputStream
构造方法:
- BufferedOutputStream (OutputStream out) 创建一个新的缓冲输出流,将数据写入指定的底层输出流
- BufferedOutputStream (OutputStream out, int size) 创建一个新的大小为size的缓冲输出流,将数据写入指定的底层输出流
- 我们可以传递OutputStream的子类FileOutputStream,缓冲流会给FileOutputStream增加一个缓冲区,提高写入效率,我们可以自定义size来设置缓冲区的大小
- 使用步骤
- 创建FileOutputStream对象,构造方法中写出文件地址
- 创建BufferedOutputStream对象,构造方法中提供FileOutputStream对象来增加一个缓冲区,提高写入效率
- 使用BufferedOutputStream对象的write方法将数据写入内部缓冲区
- 使用flush或者close方法将数据刷入文件,如果使用了close,则flush可以省略,因为close会自动flush
private static void test1() throws IOException {FileOutputStream fos=new FileOutputStream("c.txt");BufferedOutputStream bos=new BufferedOutputStream(fos);bos.write("你好啊".getBytes());bos.close();fos.close();}
Java.io.BufferedInputStream 字节缓冲输入流 ,继承自InputStream
构造方法
- BufferedInputStream (InputStream in) 创建一个新的缓冲输入流
- BufferedInputStream (InputStream in, int size) 创建一个新的大小为size的缓冲输入流
- 使用步骤
创建FileInputStream对象,绑定数据源
创建BufferedInputStream对象,传递FileInputStream对象作为参数,提高FileInputStream读取文件的效率
使用BufferedInputStream对象的read方法读取文件
释放资源
private static void test2() throws IOException {FileInputStream fis=new FileInputStream("c.txt");BufferedInputStream bis=new BufferedInputStream(fis);int len=0;byte[] bytes=new byte[1024];while((len=bis.read(bytes))!=-1){System.out.println(new String(bytes,0,len));}}
BufferedWriter 字符缓冲输出流
构造方法
- BufferedWriter(Writer out) 创建一个使用默认大小输出缓冲区的字符缓冲输出流
- BufferedWriter(BufferedWriter out,int sz) 创建一个使用指定大小输出缓冲区的字符缓冲输出流
- 特有的成员方法
- void newLine() 换行,会根据不同的操作系统使用不同的换行符
- 使用步骤
创建字符缓冲输出流对象,在构造方法中传递字符输出流
调用字符缓冲输出流中的write,把数据写入到内存缓冲区中
调用字符缓冲输出流中的flush,把内存缓冲区中的数据刷入文件(可以不使用flush,直接使用close)
释放资源
private static void test3() throws IOException {BufferedWriter bw=new BufferedWriter(new FileWriter("d.txt"));bw.write("你好啊,hello");bw.newLine();bw.write("yes");bw.close();}
BufferedReader 字符缓冲输入流
构造方法
- BufferedReader(Reader in) 创建一个使用默认大小输入缓冲区的字符缓冲输入流
- BufferedReader(Reader in,int sz) 创建一个使用指定大小输入缓冲区的字符缓冲输入流
- 特有的成员方法
- String readLine() 读取一个文本行,读取一行数据
- 返回值是字符串,当读到行终止符号的时候返回该行的字符串,当没有读到行终止符,说明读到流的末尾,返回null
- 使用步骤
创建字符缓冲输入流对象,构造方法中传递字符输入流
使用字符缓冲输入流中的read/readLine方法读取文本
释放资源
private static void test4() throws IOException{BufferedReader br=new BufferedReader(new FileReader("d.txt"));String s="";while((s=br.readLine())!=null){System.out.println(s);}br.close();}
相关文章:
java中的缓冲流
Java.io.BufferedOutputStream 字节缓冲输出流,继承自OutputStream 构造方法: BufferedOutputStream (OutputStream out) 创建一个新的缓冲输出流,将数据写入指定的底层输出流BufferedOutputStream (OutputStream out, int size) 创建一个新…...
【小吉带你学Git】idea操作(1)_配置环境并进行基本操作
🎊专栏【Git】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【Counting Stars 】 欢迎并且感谢大家指出小吉的问题🥰 文章目录 🍔环境准备⭐配置Git忽略文件🎄方法🌺创…...
DP-GAN-生成器代码
首先看一下数据生成: 在预处理阶段会将label经过ont-hot编码转换为35个通道,即每个通道都是由(0,1)组成。 在train文件中,对生成器和判别器分别进行更新,根据loss的不同,分别计算对于的损失&a…...
2020-2023中国高等级自动驾驶产业发展趋势研究
1.1 概念界定 2020-2023中国高等级自动驾驶产业发展趋势研究Trends in China High-level Autonomous Driving from 2020 to 2023自动驾驶发展过程中,中国出现了诸多专注于研发L3级以上自动驾驶的公司,其在业界地位也越来越重要。本报告围绕“高等级自动…...
JDK19 - synchronized关键字导致的虚拟线程PINNED
JDK19 - synchronized关键字导致的虚拟线程PINNED 前言一. PINNED是什么意思1.1 synchronized 绑定测试1.2 synchronized 关键字的替代 二. -Djdk.tracePinnedThreads的作用和坑2.1 死锁案例测试2.2 发生原因的推测2.3 总结 前言 在 虚拟线程详解 这篇文章里面,我们…...
用msys2安装verilator并用spinal进行仿真
一 参考 SpinalHDL 开发环境搭建一步到位(图文版) - 极术社区 - 连接开发者与智能计算生态 (aijishu.com)https://aijishu.com/a/1060000000255643Setup and installation of Verilator — SpinalHDL documentation...
【ARM64 常见汇编指令学习 13 -- ARM 汇编 ORG 伪指令学习】
文章目录 ARM ORG 指令介绍UEFI 中对 ORG 指令的使用 ARM ORG 指令介绍 在ARM汇编中,"org"是一个汇编器伪指令,用于设置下一条指令的装入地址。"org"后面跟着的是一个表达式,这个表达式的值就是下一条指令的装入地址。如…...
Vue使用QuillEditor富文本编辑器问题记录
1.内容绑定的问题 绑定内容要使用 v-model:content"xxx" 的形式。 2.设置字体字号 字体以及字号大小的设置需要先注册。 <script> import { QuillEditor,Quill } from vueup/vue-quill import vueup/vue-quill/dist/vue-quill.snow.css; // 设置字体大小 c…...
spring AOP学习
概念 面向切面编程横向扩展动态代理 相关术语 动态代理 spring在运行期,生成动态代理对象,不需要特殊的编译器 Spring AOP的底层就是通过JDK动态代理或者CGLIb动态代理技术为目标Bean执行横向织入 目标对象实现了接口,spring使用JDK的ja…...
16.M端事件和JS插件
16.1移动端 移动端也有自己独特的地方 ●触屏事件touch (也称触摸事件),Android 和I0S都有。 ●touch对象代表一个触摸点。触摸点可能是一根手指,也可能是一根触摸笔。触屏事件可响应用户手指(或触控笔)对屏幕或者触控板操作。 ●常见的触屏事件如下: …...
Zebec APP:构建全面、广泛的流支付应用体系
目前,流支付协议 Zebec Protocol 基本明确了生态的整体轮廓,它包括由其社区推动的模块化 Layer3 构架的公链 Nautilus Chain、流支付应用 Zebec APP 以及 流支付薪酬工具 Zebec payroll 。其中,Zebec APP 是原有 Zebec Protocol 的主要部分&a…...
Spark 3.1.1 遇到的 from_json regexp_replace组合表达式慢问题的解决
背景 目前公司在从spark 2.4.x升级到3.1.1的时候,遇到了一类SQL极慢的情况,该SQL的如下(只列举了关键的): select device_personas.* from(selectdevice_id, ads_id, from_json(regexp_replace(device_personas, (?<(\\{|,))"devic…...
Docker 容器常用的命令和操作
1.容器操作 - 运行容器: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 示例: docker run -it --rm ubuntu /bin/bash - 查看正在运行的容器: docker ps [OPTIONS] 示例: docker ps -a - 停止容器: docker stop CONTAINER [CONTAINER...] 示…...
iTOP-RK3568开发板Windows 安装 RKTool 驱动
在烧写镜像之前首先需要安装 RKTool 驱动。 RKTool 驱动在网盘资料“iTOP-3568 开发板\01_【iTOP-RK3568 开发板】基础资料 \02_iTOP-RK3568 开发板烧写工具及驱动”路径下。 驱动如下图所示: 解压缩后,进入文件夹,如下图所示:…...
nginx rtmp http_flv直播推流
安装配置nginx yum install epel-release -y sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm yum install ffmpeg ffmpeg-devel -y yum install gcc -y yum install pcre pcre-devel -y yum install openssl open…...
Day50 算法记录| 动态规划 17(子序列)
这里写目录标题 647. 回文子串516.最长回文子序列总结 647. 回文子串 1.动态规划和2.中心扩展 这个视频是基于上面的视频的代码 方法1:动态规划 布尔类型的dp[i][j]:表示区间范围[i,j] (注意是左闭右闭)的子串是否是回文子串,如…...
RabbitMQ:概念和安装,简单模式,工作,发布确认,交换机,死信队列,延迟队列,发布确认高级,其它知识,集群
1. 消息队列 1.0 课程介绍 1.1.MQ 的相关概念 1.1.1.什么是MQ MQ(message queue:消息队列),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是message 而已,还是一种跨进程的通信机制…...
小研究 - 基于解析树的 Java Web 灰盒模糊测试(二)
由于 Java Web 应用业务场景复杂, 且对输入数据的结构有效性要求较高, 现有的测试方法和工具在测试Java Web 时存在测试用例的有效率较低的问题. 为了解决上述问题, 本文提出了基于解析树的 Java Web 应用灰盒模糊测试方法. 首先为 Java Web 应用程序的输入数据包进行语法建模创…...
对于现有的分布式id发号器的思考 id生成器 雪花算法 uuid
在工作过程中接触了很多id生成策略,但是有一些问题 雪花id 强依赖时钟,对于时钟回拨无法很好解决 tinyid 滴滴开源,依赖mysql数据库,自增,无业务属性 uuid 生成是一个字符串没有顺序,数据库索引组织数据…...
jmeter中json提取器,获取多个值,并通过beanshell组成数组
jmeter中json提取器介绍 特别说明:**Compute concatenation var(suffix_ALL)😗*如果找到许多结果,则插件将使用’ , 分隔符将它们连接起来,并将其存储在名为 _ALL的var中 json提取器调试 在查看结果树中选择JSON Pat…...
万象视界灵坛应用场景:AR内容开发中图像-描述语义对齐验证
万象视界灵坛应用场景:AR内容开发中图像-描述语义对齐验证 1. 技术背景与需求分析 在AR内容开发过程中,图像与文本描述的语义对齐验证是一个关键挑战。传统方法通常依赖人工审核或简单的关键词匹配,存在效率低下、准确性不足等问题。万象视…...
为什么2026年所有头部AI公司都弃用Kafka+Flink?AI原生流处理的4层抽象模型与2个开源替代方案
第一章:2026奇点智能技术大会:AI原生大数据处理 2026奇点智能技术大会(https://ml-summit.org) 本届大会首次定义并落地“AI原生大数据处理”范式——数据从采集、清洗、特征工程到模型训练与推理,全程由大语言模型(LLM…...
使用 C# 删除 PDF 中的数字签名票
一、 什么是 AI Skills:从工具级到框架级的演化 AI Skills(AI 技能) 的概念最早在 Claude Code 等前沿 Agent 实践中被强化。最初,Skills 被视为“工具级”的增强,如简单的文件读写或终端操作,方便用户快速…...
TypeScript的模板字面量类型:实现类型安全的SQL查询
TypeScript的模板字面量类型:实现类型安全的SQL查询 在现代前端开发中,TypeScript因其强大的类型系统而备受青睐。而模板字面量类型作为TypeScript 4.1引入的新特性,进一步扩展了类型系统的能力,使得开发者能够实现更精细的类型约…...
RobotDuLAB:面向K-12教育的Arduino机器人教学库设计
1. RobotDuLAB Arduino库:面向教育场景的嵌入式机器人控制抽象层设计与工程实践1.1 教育型开源机器人的系统定位与硬件架构RobotDuLAB并非通用工业机器人平台,而是一个专为K-12阶段编程教学深度定制的开源教育机器人系统。其核心设计理念是“可理解性优先…...
unidbg 实战:逆向某汽车类App请求加密全流程解析
1. 逆向分析前的准备工作 在开始逆向分析某汽车类App的请求加密逻辑之前,我们需要做好充分的准备工作。首先得明确目标:我们要复现App发送网络请求时的完整加密流程。这通常包括参数拼接、时间戳处理、签名生成等环节。我建议先用抓包工具(如…...
手机维修师傅的“内功心法”:看懂手机屏排线上的MIPI、I2C、SPI信号,快速定位不开机、花屏、触摸失灵故障
手机维修实战:通过屏排线信号诊断显示与触摸故障的黄金法则 当你面对一部摔落后屏幕全黑但能听见系统声音的iPhone,或是进水后出现彩色条纹的安卓手机时,90%的维修师傅会直接更换屏幕总成。而真正的高手,会拿起万用表和示波器&…...
FastbootEnhance:5步掌握Windows平台最强安卓刷机工具
FastbootEnhance:5步掌握Windows平台最强安卓刷机工具 【免费下载链接】FastbootEnhance A user-friendly Fastboot ToolBox & Payload Dumper for Windows 项目地址: https://gitcode.com/gh_mirrors/fa/FastbootEnhance 还在为复杂的Fastboot命令行操作…...
别再只写ChatGPT提示词了!用LangChain和AutoGen给AI装上‘手和脚’的保姆级教程
从提示词到智能体:用LangChain和AutoGen构建能动手的AI助手 想象一下,你正在开发一个电商客服系统。传统的AI客服只能回答"退货政策是什么?"这样的问题,而真正的业务需求是:"帮我处理订单12345的退货&a…...
鸿蒙 HarmonyOS 6 | Media Kit 屏幕捕获填充模式迁移详解
文章目录前言一、填充模式真正影响的是什么二、代码里最关键的是策略对象和调用时序三、适配时别只看设备类型,先看内容和输出比例四、排查方式总结前言 做屏幕录制时,最容易被忽略的一层,是捕获源尺寸和目标输出尺寸并不总是一致。手机长屏…...
