java中的FileInputStream三种read()函数用法

针对“java中的FileInputStream三种read()函数用法”,我整理了以下攻略:

一、FileInputStream简介

java.io包中的FileInputStream是一个类,它用于从文件系统中的文件获取输入字节流。它继承了InputStream类。在使用FileInputStream时,一个文件必须存在,并且应该以字节的形式存在。
FileInputStream类的构造函数有三种不同的方式,它们是:

public FileInputStream(File file) throws FileNotFoundException {} //使用文件路径构建FileInputStream对象
public FileInputStream(String path) throws FileNotFoundException {} //使用文件对象构建FileInputStream对象
public FileInputStream(FileDescriptor fdObj) {} //使用文件描述符对象构建FileInputStream对象

二、FileInputStream中的三种read()函数用法

FileInputStream类提供了三种不同的read()方法重载,它们可以读取多个字节数据并进行不同的处理。这三种read()方法是:

read()

public int read() throws IOException {}
  • 从输入的字节流中读取下一个字节,并返回该字节的值(0~255)。
  • 如果已经到达输入流的末尾,则返回-1。

示例1:

假设文件路径为"test.txt", 文件内容为:"Hello World!"。以下代码展示如何使用read()方法从文件中读取并输出文件中的内容:

FileInputStream fis = null;
try {
    fis = new FileInputStream("test.txt");
    int data = fis.read();
    while (data != -1) {
        System.out.print((char) data);  // 打印文件内容
        data = fis.read();  // 从输入流中读取新的字节
    }
} catch (IOException e) {
    e.printStackTrace();
} finally {
    try {
        fis.close();  // 释放资源
    } catch (IOException e) {
        e.printStackTrace();
    }
}

输出结果如下:

Hello World!

read(byte[] b)

public int read(byte[] b) throws IOException {}
  • 从输入流中读取一定数量的字节,并将它们存储在数组b中。
  • 该方法返回读取的字节数。如果已经到达输入流的末尾,则返回-1。

示例2:

假设文件路径为"test.txt", 文件内容为:"Hello World!"。以下代码展示如何使用read(byte[] b)方法从文件中读取并输出文件中的内容:

FileInputStream fis = null;
try {
    fis = new FileInputStream("test.txt");
    byte[] buffer = new byte[1024];  // 数组大小为1024字节
    int length;
    while ((length = fis.read(buffer)) != -1) {
        System.out.write(buffer, 0, length);  // 打印读取的内容
    }
} catch (IOException e) {
    e.printStackTrace();
} finally {
    try {
        fis.close();  // 释放资源
    } catch (IOException e) {
        e.printStackTrace();
    }
}

输出结果如下:

Hello World!

read(byte[] b, int off, int len)

public int read(byte[] b, int off, int len) throws IOException {}
  • 从输入流中读取最多len个字节,并将它们存储在数组b中,开始存储的位置是offset。
  • 该方法返回读取的字节数。如果已经到达输入流的末尾,则返回-1。

示例3:

假设文件路径为"test.txt", 文件内容为:"Hello World!"。以下代码展示如何使用read(byte[] b, int off, int len)方法从文件中读取并输出文件中的内容:

FileInputStream fis = null;
try {
    fis = new FileInputStream("test.txt");
    byte[] buffer = new byte[1024];  // 数组大小为1024字节
    int length = fis.read(buffer, 0, 5);  // 从输入流中读取5个字节
    String str = new String(buffer, 0, length, "UTF-8");
    System.out.println(str);  // 打印读取的内容
} catch (IOException e) {
    e.printStackTrace();
} finally {
    try {
        fis.close();  // 释放资源
    } catch (IOException e) {
        e.printStackTrace();
    }
}

输出结果如下:

Hello

通过以上三个示例,我们可以清楚地了解到FileInputStream的三种不同的read()函数用法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java中的FileInputStream三种read()函数用法 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • Java中Lambda表达式的使用详细教程

    Java中Lambda表达式的使用详细教程 什么是Lambda表达式 Lambda表达式是Java8中新增加的一个特性,它提供了一种简洁但功能强大的方式来处理函数式编程。函数式编程是一种基于函数计算的编程方式,它将运算过程封装到函数中,并将函数当作一等公民进行传递。在传统的面向对象编程中,我们通常将操作封装到对象中,然后由对象来进行调用,而函数式编程则是直接…

    Java 2023年5月26日
    00
  • 在springboot中对kafka进行读写的示例代码

    下面是关于在Spring Boot中对Kafka进行读写的完整攻略。 准备工作 在开始示例前,我们需要准备一些必要的工作: 安装Kafka并启动服务 在Spring Boot项目的pom.xml中加入Kafka依赖: <dependency> <groupId>org.springframework.kafka</groupId…

    Java 2023年5月20日
    00
  • java equals函数用法详解

    Java equals函数用法详解 介绍 在Java中,equals()是用来比较两个对象是否相等的函数。equals()方法是Object类中的方法,因此所有Java类都包含equals()方法。在默认情况下,equals()方法比较对象的引用地址是否相同,即两个对象是否是同一个实例。但是,我们可以覆盖equals()方法,来定义自己的相等规则。 equa…

    Java 2023年5月26日
    00
  • JSP 开发之hibernate配置二级缓存的方法

    下面是详细讲解“JSP 开发之 hibernate 配置二级缓存的方法”的完整攻略。 简介 在使用 Hibernate 进行开发的时候,为了提高系统的性能,常常需要使用二级缓存来优化查询。本文将介绍如何在 Hibernate 中配置二级缓存。 步骤 1. 添加缓存依赖 为了使用 Hibernate 的二级缓存,需要添加相应的缓存依赖。 <!– Hib…

    Java 2023年6月15日
    00
  • 使用jackson实现对象json之间的相互转换(spring boot)

    下面是使用Jackson库实现对象和JSON格式的相互转换的完整攻略。 前置条件 本文需要你已经掌握Spring Boot框架的基础知识,并且对于Java对象与JSON的基础知识有所了解。 介绍 Jackson是一个Java库,用于将Java对象序列化为JSON格式的字符串,并将JSON格式的字符串反序列化为Java对象。Jackson支持在Java对象和J…

    Java 2023年5月26日
    00
  • Springboot初始化项目并完成登入注册的全过程

    Spring Boot初始化项目并完成登入注册的全过程 Spring Boot是一个非常流行的Java Web框架,它提供了许多方便的功能,如自动配置、快速开发和易于部署。本文将介绍如何使用Spring Boot初始化项目并完成登入注册的全过程,并提供两个示例。 步骤 以下是使用Spring Boot初始化项目并完成登入注册的全过程的步骤: 创建Spring…

    Java 2023年5月15日
    00
  • Java实现对象按照其属性排序的两种方法示例

    Java是一种高级编程语言,它具有面向对象编程的特点。当我们使用Java进行编程时,很多时候需要对对象进行排序操作。本文将详细讲解如何在Java中实现对象按照其属性排序的两种方法。 方法一:使用Comparator接口 Comparator接口是Java中的一个接口,它可以用于比较对象的属性,从而实现排序功能。使用Comparator接口可以按照任何属性进行…

    Java 2023年5月26日
    00
  • 解决Tomcat启动失败:严重 [main] org.apache.catalina.util.LifecycleBase.handleSubClassException 初始化组件失败

    当我们使用Tomcat作为Web服务器时,有时会在启动过程中遇到“初始化组件失败”的错误提示,通常会伴随着“严重 [main] org.apache.catalina.util.LifecycleBase.handleSubClassException”这样的堆栈信息。这种问题的出现一般都是由于我们的应用程序存在一些不兼容、缺失或者错误的依赖库,或者是Tom…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部