java io包

2024-05-09 19:20
文章标签 java io

本文主要是介绍java io包,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

InputStream

InputStream 是 Java I/O 中所有输入流的抽象基类,它定义了读取字节流的基本方法。InputStream 类提供了许多子类,用于从不同的数据源读取数据,如文件、网络连接、内存等。

InputStream 提供了以下常用的方法:

  • int read(): 从输入流中读取下一个字节的数据。如果已经到达流的末尾,则返回 -1。
  • int read(byte[] b): 从输入流中读取一定数量的字节,并将其存储到字节数组 b 中。返回实际读取的字节数。
  • int read(byte[] b, int off, int len): 从输入流中读取最多 len 个字节的数据,并将其存储到从偏移量 off 开始的字节数组 b 中。返回实际读取的字节数。
  • long skip(long n): 跳过并丢弃输入流中的 n 个字节数据,并返回实际跳过的字节数。
  • int available(): 返回可以从输入流中读取而不被阻塞的字节数。
  • void close(): 关闭输入流并释放与之关联的系统资源。

InputStream 是一个抽象类,不能直接实例化,通常通过其具体的子类来实现不同的输入流功能,如 FileInputStreamByteArrayInputStreamBufferedInputStream

1 ByteArrayInputStream:这个类允许将内存中的字节数组作为输入流来处理。它的构造函数接受一个字节数组作为参数,并可以从该数组中读取数据。它通常用于在内存中处理二进制数据,比如处理内存中的图片数据或者处理网络数据。
byte[] byteArray = { 1, 2, 3, 4, 5 };
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(byteArray);

2 FileInputStream:这个类用于从文件系统中读取数据。它的构造函数接受一个文件路径作为参数,然后可以从该文件中读取数据。它通常用于读取文件内容,比如读取文本文件、图片文件等。
FileInputStream fileInputStream = new FileInputStream("example.txt");

FilterInputStream:这个类是一个抽象类,它提供了对输入流的过滤功能。它本身并不能直接创建实例,而是通过其子类来实现具体的功能。常用的子类包括 BufferedInputStream、DataInputStream 等,它们可以在输入流的基础上添加缓冲、数据格式化等功能。
InputStream inputStream = new FileInputStream("example.txt");
FilterInputStream filterInputStream = new BufferedInputStream(inputStream);

4 ObjectInputStream:用于从输入流中读取 Java 对象。它可以读取通过 ObjectOutputStream 写入的对象,并将它们还原为内存中的对象实例。
FileInputStream fileInputStream = new FileInputStream("object.dat");
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);


5 PipedInputStream:通过管道进行线程间通信时,可用于接收来自管道输出流的数据。通常与 PipedOutputStream 一起使用。
PipedOutputStream pipedOutputStream = new PipedOutputStream();
PipedInputStream pipedInputStream = new PipedInputStream(pipedOutputStream);


6 SequenceInputStream:用于将多个输入流串联起来,形成一个顺序读取的输入流。它接受两个输入流作为参数,在读取时先从第一个输入流读取数据,当第一个输入流读取结束后再从第二个输入流读取数据,依次类推。
FileInputStream fileInputStream1 = new FileInputStream("file1.txt");
FileInputStream fileInputStream2 = new FileInputStream("file2.txt");
SequenceInputStream sequenceInputStream = new SequenceInputStream(fileInputStream1, fileInputStream2);


7 StringBufferInputStream:已过时的类,用于将字符串转换为输入流。它将一个字符串转换为字节流,但由于它使用的是默认的字符编码,因此可能导致在处理非 ASCII 字符时出现问题。建议使用 ByteArrayInputStream 或 ByteArrayInputStream 代替。
StringBufferInputStream stringBufferInputStream = new StringBufferInputStream("Hello, world!");

这篇关于java io包的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/974277

相关文章

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

SpringBoot中如何使用Assert进行断言校验

《SpringBoot中如何使用Assert进行断言校验》Java提供了内置的assert机制,而Spring框架也提供了更强大的Assert工具类来帮助开发者进行参数校验和状态检查,下... 目录前言一、Java 原生assert简介1.1 使用方式1.2 示例代码1.3 优缺点分析二、Spring Fr

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件