首页 > 编程语言 >JAVA-IO流之字节的输入输出流

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

时间:2024-09-02 16:26:59浏览次数:4  
标签:JAVA 字节 temp 流之 IO new null os 输入

一、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");
  		// 读取文件则用fileInputStream
  		is = 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();
       }
    }
}

标签:JAVA,字节,temp,流之,IO,new,null,os,输入
From: https://www.cnblogs.com/luohhu/p/18392763

相关文章

  • 郑州市专业技术人员继续教育刷课脚本-JavaScript编写
    脚本学习网站:zzzj.hnhhlearning.com,zzzj.jxjyedu.org.cn脚本地址:郑州市专业技术人员继续教育-刷课脚本教程1.插件安装(以MicrosoftEdge浏览器为例)打开最中间那个蓝色绿色的浏览器,谷歌之类的浏览器也可以点击屏幕右上角三个点,图示位置,然后点击扩展点击获取扩展搜索T......
  • 济宁市专业技术人员继续教育刷课脚本-JavaScript编写
    脚本学习网站:jnzjplat.chinahrt.cn,sdjn.yxlearning.com脚本地址:济宁市专业技术人员继续教育-刷课脚本教程1.插件安装(以MicrosoftEdge浏览器为例)打开最中间那个蓝色绿色的浏览器,谷歌之类的浏览器也可以点击屏幕右上角三个点,图示位置,然后点击扩展点击获取扩展搜索Tam......
  • ffmpeg错误Invalid audio stream. Exactly one MP3 audio stream is required. Could
    错误消息Invalidaudiostream.ExactlyoneMP3audiostreamisrequired.Couldnotwriteheaderforoutputfile#0(incorrectcodecparameters?):InvalidargumentErrorinitializingoutputstream0:0--OnlyAACstreamscanbemuxedbytheADTSmuxerCoul......
  • Java服务端服务限流:Sentinel与Guava RateLimiter的对比
    Java服务端服务限流:Sentinel与GuavaRateLimiter的对比大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在微服务架构中,服务限流是一种重要的保护机制,用于防止系统过载。Sentinel和GuavaRateLimiter是两种流行的限流工具,它们提供了不同的限流策略和实......
  • Java服务端数据库事务:分布式事务的实现
    Java服务端数据库事务:分布式事务的实现大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在分布式系统中,数据库事务管理变得复杂,因为事务可能涉及多个服务和数据库。分布式事务确保跨多个服务的数据一致性。本文将探讨分布式事务的实现策略,以及如何在Ja......
  • 《黑神话:悟空》硬件兼容性问题全攻略:从BIOS更新到驱动安装的详细修复指南
    《黑神话:悟空》作为一款备受期待的国产3A大作,自发布以来,确实遇到了一些玩家的电脑硬件兼容性问题。今天小编搜罗了网上反馈一些经常出现的BUG,来教大家如何进行修复操作!更新主板BIOS:对于13/14代酷睿处理器用户,首先尝试更新主板BIOS至最新版本,确保微代码版本为0x129。如果更新......
  • Java服务端服务熔断:Hystrix与Bulb的比较
    Java服务端服务熔断:Hystrix与Bulb的比较大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在微服务架构中,服务熔断是一种重要的容错机制,用于防止服务故障的蔓延。Hystrix和Bulb是两种流行的服务熔断工具,它们提供了熔断、降级、隔离等功能。本文将探讨Hy......
  • 艾体宝干货丨如何使用IOTA进行远程流量数据采集分析​
    一、问题描述在许多情况下,网络故障不会直接发生在有专业人员进行网络分析的地方。同时,前往偏远地区既费时又费钱。这意味着网络故障排除人员必须能够进行远程记录,最好还能进行远程分析。然而,这也给网络技术带来了挑战,因为传统的VPN技术需要输入防火墙规则,必要时还需要端口转发。此......
  • 全国中小学教师继续教育网-JavaScript编写
    脚本学习网站:zxx.edu.cn,smartedu.cn脚本地址:全国中小学教师继续教育网-刷课脚本教程1.插件安装(以MicrosoftEdge浏览器为例)打开最中间那个蓝色绿色的浏览器,谷歌之类的浏览器也可以点击屏幕右上角三个点,图示位置,然后点击扩展点击获取扩展搜索Tampermonkey,并点击获取......
  • Spring框架之IOC介绍
    Spring之IOC简介首先,官网中有这样一句话:SpringFrameworkimplementationoftheInversionofControl(IoC)principle.这句话翻译过来就是:Spring实现控制反转(IOC)原理,由此可以得出,InversionofControl(IOC)是一个名为控制反转的原理,而Spring实现了他。而实现这个原理或者说设......