JAVA-IO流之字节的输入输出流

news/2024/10/1 1:23:49

一、IO流的分流

  1. 按流的流向分为:输入流、输出流
  2. 根据处理的数据类型分为:字节流、字符流
  3. 在计算机中、将硬盘上的文件向内存中的流为输入流(读取)、将内存中的流输出到硬盘为输出流(写)

二、java流-字节输入输出流

  1. 概念:流可以理解为一个数据序列、输入流表示从一个源读取数据,输出流表示向一个目标写数据
  2. 本文张重点讲述字节输入流(InputStream)、输出流(OutputStream)以及高效(FilterInputStream)的结合使用

三、IO字节流流程图结构

四、字节输入输出流的使用

/*** * 将硬件上的文件流向内存:输入流* 1、字节输入流:inputStream**/public static void InputStreamDemo() {InputStream is = null;try {File file = new File("D:\\down\\HR模板.xlsx");// 读取文件则用fileInputStreamis = new FileInputStream(file);int length = is.available();byte b[] = new byte[length];int temp = 0;// 逐个字节读取while ((temp = is.read()) != -1) {System.out.println(temp);}} catch (Exception e) {e.printStackTrace();} finally {try {if (is != null) {is.close();}} catch (IOException e) {e.printStackTrace();}}
}

五、字节输入输出流的使用

/**
* 字节输出流:将内存的流输入到硬盘上(输出流)
*/
public static void outputStreamDemo() {InputStream is = null; //输入流OutputStream os = null;//输出流try {// 将目标文件读取File file = new File("D:\\down\\输入流测试.txt");is = new FileInputStream(file);os = new FileOutputStream("D:\\down\\输出流测试.txt");int temp = 0;while ((temp = is.read()) != -1) {//将读出来的内容写入到新的文档里os.write(temp);}} catch (Exception e) {e.printStackTrace();} finally {//将资源进行关闭try {if (os != null) {os.close();}if (is != null) {is.close();}} catch (IOException e) {e.printStackTrace();}}
}

六、高效流的使用

/**
* 作用:当读取和写入的文件流过大时、采用常规读写的速度缓慢、影响效率
* 为了解决该问题、java提供了高效流、提供一个缓存取、提高流的读写的速度
* 关键字:
* 1、字节缓冲输出流 BufferedOutputStream
* 2、字节缓冲输入流 BufferedInputStream
* 示例将字节缓冲输入流和缓存输出流进行配合使用
* */
public static void bufferDemo() {InputStream is = null;BufferedInputStream bis = null;OutputStream os = null;BufferedOutputStream bos = null;try {File file = new File("D:\\down\\输入流测试.txt");is = new FileInputStream(file);bis = new BufferedInputStream(is);os = new FileOutputStream("D:\\down\\输出流测试2.txt");bos = new BufferedOutputStream(os);int temp = 0;while ((temp = bis.read()) != -1) {bos.write(temp);}} catch (Exception e) {e.printStackTrace();} finally {// 关闭流try {if (bos != null) {bos.close();}if (bis != null) {bis.close();}if (os != null) {os.close();}if (is != null) {is.close();}} catch (IOException e) {e.printStackTrace();}}
}

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

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

相关文章

郑州市专业技术人员继续教育刷课脚本-JavaScript编写

脚本 学习网站:zzzj.hnhhlearning.com, zzzj.jxjyedu.org.cn 脚本地址:郑州市专业技术人员继续教育-刷课脚本 教程 1.插件安装(以Microsoft Edge浏览器为例)打开最中间那个蓝色绿色的浏览器,谷歌之类的浏览器也可以点击屏幕右上角三个点,图示位置,然后点击扩展点击获取扩…

内网穿透:frp

由于需要做微信公众号开发,就用frp做了一个内网穿透。 1.环境说明 (1).一台云服务器,公网IP为:X.X.X.X(以阿里云为例,frp的服务端) (2).一个备案域名(可以是二级域名),并解析指向到上面的IP。 以test1.cn为例。 (3).一台客户机(frp客户端,可以上网) (4).frp软件,…

获得SSH秘钥和SSL环境的可见性和控制权

未经管理的密钥和证书如何损害分层安全防御系统 多年来,由于技术的不断发展和演变,网络威胁和安全漏洞也在不断变化。企业大多都在精心研究各种解决方案和战略,以加强其安全基础设施。但是,安全问题是没有灵丹妙药的。 目前,一种备受企业推崇并被广泛采用的一种技术是利用…

ECharts实现雷达图详解

ECharts 是一款由百度开源的数据可视化工具,它提供了丰富的图表类型,如折线图、柱状图、饼图、散点图、雷达图、地图、K线图、热力图、仪表盘等,以及丰富的交互功能。ECharts 组件的核心功能实现原理主要包括以下几个方面:数据驱动: ECharts 采用数据驱动的设计理念,图表…

HTB-Runner靶机笔记

HTB-Runner靶机笔记 概述 Runner是HTB上一个中等难度的Linux靶机,它包含以下teamcity漏洞(CVE-2023-42793)该漏洞允许用户绕过身份验证并提取API令牌。以及docker容器逃逸CVE-2024-21626,进行提权操作 Runner靶机地址:https://app.hackthebox.com/machines/Runner 一、nmap …

【新品8折】正点原子ZYNQ7035/7045/7100开发板发布、ZYNQ 7000系列、双核ARM、PCIe2.0、SFPX2!

【新品发布】正点原子FPGA新品ZYNQ7035/7045/7100开发板,ZYNQ 7000系列、双核ARM、PCIe2.0、SFPX2! 正点原子Z100 ZYNQ开发板,搭载Xilinx Zynq7000系列芯片,核心板支持Xilinx Zynq-7035、Zynq-7045和Zynq-7100三种型号。开发板由核心板+底板组成,外设资源丰富,板载2路千兆…

达梦存储过程性能问题定位

在达梦数据库中可以通过V$DMSQL_EXEC_TIME和debug方式来定位存储过程存在的性能问题,但V$DMSQL_EXEC_TIME往往定位比较粗糙,没法定位到存储过程中sql的执行时间,而debug可以点位具体某段sql,但如果存储过程里面有大量游标,参数变量值很多的情况下,debug调试也花费大量时间…

redis-数据结构数据类型

redis常见数据类型 作者:x x x Redis 共有 5 种基本数据类型:String(字符串)、List(列表)、Set(集合)、Hash(散列)、Zset(有序集合)。数据类型 底层数据结构 应用场景String SDS 它可以存储任何数据 - 字符串、整数、浮点值、JPEG 图像、序列化的 Ruby 对象或您希望…