Java IO流(三)-字节流缓冲流

1字节缓冲区流

1.1 字节缓冲流概述

  • 字节缓冲流:

    • ​ BufferOutputStream:缓冲输出流
    • ​ BufferedInputStream:缓冲输入流
  • 构造方法:

    • ​ 字节缓冲输出流:BufferedOutputStream(OutputStream out)
    • ​ 字节缓冲输入流:BufferedInputStream(InputStream in)
  • 为什么构造方法需要的是字节流,而不是具体的文件或者路径呢?

    • ​ 字节缓冲流仅仅提供缓冲区,不具备读写功能 , 而真正的读写数据还得依靠基本的字节流对象进行操作

1.2 字节缓冲流案例

public class BufferedStreamDemo1 {public static void main(String[] args) throws IOException {// 创建高效的字节输入流对象// 在底层会创建一个长度为8192的数组BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\Apache24\\htdocs\\brawlive\\site\\upload\\images\\202203\\29\\1648532403_284454_max.jpg"));// 创建高效的字节输出流// 在底层会创建一个长度为8192的数组BufferedOutputStream bos= new BufferedOutputStream(new FileOutputStream("copy2.jpg"));int by;while ((by=bis.read())!=-1){bos.write(by);}//释资资源bis.close();bos.close();}
}

1.2 一次读一个字节和写一个字节原理

package javaio.buffer.demo1;import java.io.*;/*需求:把“11.mp4”复制到模块目录下的“copy.mp4” , 使用四种复制文件的方式 , 打印所花费的时间四种方式:1 基本的字节流一次读写一个字节          : 花费的时间为:1245124毫秒2 基本的字节流一次读写一个字节数组      : 花费的时间为:1245毫秒3 缓冲流一次读写一个字节                : 花费的时间为:3605毫秒4 缓冲流一次读写一个字节数组            : 花费的时间为:280毫秒*/
public class BufferedStreamDemo2 {public static void main(String[] args) throws IOException {long startTime = System.currentTimeMillis();method4();long endTime = System.currentTimeMillis();System.out.println("花费的时间为:" + (endTime - startTime) + "毫秒");}// 4 缓冲流一次读写一个字节数组private static void method4() throws IOException {// 创建高效的字节输入流BufferedInputStream bis=new BufferedInputStream(new FileInputStream("E:\\11.mp4"));// 创建高效的字节输出流BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("copy.mp4"));// 一次读写一个字节数组byte[] bys = new byte[1024];int len;// 每次真实读到数据的个数while ((len=bis.read(bys))!=-1){bos.write(bys,0,len);}//释放资源bis.close();bos.close();}//  3 缓冲流一次读写一个字节private static void method3() throws IOException {// 创建高效的字节输入流BufferedInputStream bis=new BufferedInputStream(new FileInputStream("E:\\11.mp4"));// 创建高效的字节输出流BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("copy.mp4"));// 一次读写一个字节int by;while ((by = bis.read()) != -1) {bos.write(by);}// 释放资源bis.close();bos.close();}// 2 基本的字节流一次读写一个字节数组private static void method2() throws IOException {// 创建基本的字节输入流对象FileInputStream fis = new FileInputStream("E:\\11.mp4");// 创建基本的字节输出流对象FileOutputStream fos = new FileOutputStream("copy.mp4");// 一次读写一个字节数组byte[] bys = new byte[1024];int len;// 每次真实读到数据的个数while ((len=fis.read(bys))!=-1){fos.write(bys,0,len);}fis.close();fos.close();}private static void method1() throws IOException {// 创建基本的字节输入流对象FileInputStream fis = new FileInputStream("E:\\11.mp4");// 创建基本的字节输出流对象FileOutputStream fos = new FileOutputStream("copy.mp4");//一次读一个字节int by;while ((by=fis.read())!=-1){fos.write(by);}//释放资源fis.close();fos.close();}
}

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

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

相关文章

Nginx 中 return 和 rewrite 跳转

目录 1.return 跳转 2.rewrite 跳转 如果把https的s去掉,就相当于去访问80端口了,https默认找的是443端口,而80端 口对应的网站我们设置了默认网站,所以如果你删掉了s再访问,就看到我们的默认网站了 我们想要的效果…

LeetCode 1154. 一年中的第几天:2023年最后一道每日一题

【LetMeFly】1154.一年中的第几天:2023年最后一道每日一题 力扣题目链接:https://leetcode.cn/problems/day-of-the-year/ 给你一个字符串 date ,按 YYYY-MM-DD 格式表示一个 现行公元纪年法 日期。返回该日期是当年的第几天。 示例 1&…

Python办公自动化 – 定时邮件提醒和音视频文件处理

Python办公自动化 – 定时邮件提醒和音视频文件处理 以下是往期的文章目录,需要可以查看哦。 Python办公自动化 – Excel和Word的操作运用 Python办公自动化 – Python发送电子邮件和Outlook的集成 Python办公自动化 – 对PDF文档和PPT文档的处理 Python办公自动化…

网工内推 | 事业单位、上市公司网工,五险一金补贴多

01 中科中山药物创新研究院 招聘岗位:网络工程师 职责描述: 1.负责信息化网络数据安全,加固网络安全、渗透测试、风险评估、漏洞扫描、风险管理和风险评估方法。对防火墙、IDS、IPS、蜜罐、防DDOS、VPN等设备的运行管理; 2.负责机…

100个python代码大全详细介绍

1.输出Hello World print("Hello World!")2.计算两个数的和 num1 5 num2 7 sum num1 num2 print("The sum of", num1, "and", num2, "is", sum)3.判断一个数是否是正数 num 10 if num > 0:print("Positive number&quo…

CodeWave智能开发平台--03--目标:应用创建--01模板创建依赖问题修改

摘要 本文是网易数帆CodeWave智能开发平台系列的第03篇,主要介绍了基于CodeWave平台文档的新手入门进行学习,实现一个完整的应用,本文主要完成模板创建时的依赖问题解决。 CodeWave智能开发平台的03次接触 CodeWave参考资源 网易数帆Code…

脚本接收参数,执行shell指令

洗礼 上午开完会,5个小时内丧失思考行动能力,10个小时内不敢说话,深刻把握会议精神,反省自己。因为经常用到脚本执行任务,所以记录一下一些常用的脚本接收参数,执行shell指令。 python脚本 Python脚本是…

vercel部署Gemini pro

一、注册一个vercel账号(这个东西类似于第三方的github pages,能部署github中的项目) 二、注册结束后,填写github的账号(需要事先在该github账号中fork一个gemini的repository) 三、babaohuang/GeminiPro…

应用案例——楼宇对讲、可视门铃芯片组成分析

语音通话芯片:D34018,D34118,D5020,D31101; D34018 单片电话机通话电路,合并了必 需的放大器、衰减器和几种控制 功能,包括发送和接收衰减器、 背景噪声电平检测系统和一个衰 减器控制系统,对发送和接收电 平好于背景噪声做…

git的使用 笔记1

GIT git的使用 使用git提交的两步 第一步:是使用 git add 把文件添加进去,实际上就是把文件添加到暂存区。第二步:使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支上。 .git 跟踪管理版本的目录 创建版本库…

阶段十-分布式-Redis01

第一章 Redis入门 1.1 节 什么是NoSql型数据库 NoSQL ,泛指非关系型的数据库, NoSQL Not Only SQL,它可以作为关系型数据库的良好补充。 NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。NoSQL与SQL数据库区别对比如…

【Kubernetes 】Kubernetes 网络之 Ingress 配置详解

一、ingress 在Kubernetes集群中,Ingress作为集群内服务对外暴露的访问接入点,几乎承载着集群内服务访问的所有流量。Ingress是Kubernetes中的一个资源对象,用来管理集群外部访问集群内部服务的方式。可以通过Ingress资源来配置不同的转发规则,从而实现根据不同的规则设置访…

CMake入门教程【核心篇】包含目录(include_directories)

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「本专栏容」:CMake入门教程 😈「动动你的小手」:点赞👍收藏⭐️评论📝 文章目录 1. 基本用法2. 添加单个…

vue动态添加数据

1,先声明一个数组为响应式的,里面有一些数据 const tableData ref([{sex: 女,name: 姓名1,birthday:0512},{sex: 女,name: 姓名2,birthday:0314},{sex: 男,name: 姓名3,birthday:1012},{sex: 女,name: 姓名4,birthday:0915}, ]); 我这里用的是表格的,…

快手推荐算法工程师三面回顾

快手三次技术面试一次HR面试的简单回顾,希望对大家有所启发。 一面 面试官一上来就让写算法题,第一个是计算岛屿数量,第二个是最长回文字串。 然后就是介绍自己的论文。对于论文的工作,面试官只是在问关于论文的问题&#xff0…

【PCB专题】Allegro封装更新焊盘

在PCB封装的绘制中,有时会出现需要更新焊盘的情况。比如在制作封装的过程中发现焊盘做的不对而使用PAD_Designer重新更新了焊盘。 那在PCB中如何更新已经修改过的焊盘呢? 打开封装,选择Tools->Padstack->Refresh... 选择Refresh all …

CentOS快速安装Mysql5.7(Alibaba Cloud Linux兼容)

1、安装 在线下载 http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 下载rpm安装包 [roottheo bin]# cd /usr/local [roottheo local]# wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm安装rpm [roottheo local]# rpm -iv…

关于一个web站点的欢迎页面

- 什么是一个web站点的欢迎页面? - 对于一个webapp来说,我们是可以设置它的欢迎页面的。 - 设置了欢迎页面之后,当你访问这个webapp的时候,或者访问这个web站点的时候,没有指定任何“资源路径”,这个时候…

中国FinOps现状调查报告(2023)》亮点解读

今年以来,我们举办了多期FinOps的专题分享,邀请了美图、腾讯、B站、趣丸、知乎等厂商和行业专家,分享他们在FinOps领域的经验。我们也发现越来越多的人对FinOps产生了浓厚的兴趣,而且FinOps的成熟度也在逐渐提升。 降本增效&…

SpringSecurity结合knife4j实现swagger文档

🍁 作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云专家博主 📌 擅长领域:全栈工程师、爬虫、ACM算法 💒 公众号:知识浅谈 🔥网站…