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

yizhihongxing

针对“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事务的概念浅析

    接下来我将详细讲解“Java事务的概念浅析”的完整攻略。 Java事务的概念浅析 什么是事务 在计算机领域,事务是指一组对系统中数据的访问和更新操作,这组操作要么全都执行成功,要么全都不执行,保证了数据的一致性。事务是一种能够保证数据在一些列操作中的完整性和一致性的数据处理方式。 事务的ACID属性 在数据库中,事务必须同时具备ACID四个属性: 原子性(A…

    Java 2023年5月20日
    00
  • Java使用httpRequest+Jsoup爬取红蓝球号码

    下面是Java使用httpRequest+Jsoup爬取红蓝球号码的完整攻略。 1. 确定目标网站和爬取方式 首先要确定目标网站,这里以中国福利彩票双色球为例(http://www.cwl.gov.cn/kjxx/ssq/kjgg/)。双色球的开奖号码一般都是在晚上9点左右开奖,因此爬取频率要保持在一天只进行一次,以免被服务器屏蔽。另外,在爬取过程中需要保持…

    Java 2023年6月15日
    00
  • java中如何执行xshell命令

    Java中可以使用Runtime和Process类来执行xshell命令,下面是详细步骤: 1.创建Runtime对象使用Java中Runtime类创建一个Runtime对象,这个对象提供了执行操作系统命令的方法。 Runtime runtime = Runtime.getRuntime(); 2.调用exec方法通过Runtime对象调用exec方法,可以…

    Java 2023年5月26日
    00
  • java分布式面试系统限流最佳实践

    针对Java分布式面试系统的限流最佳实践,我将分享以下攻略: 1. 需求调研与场景分析 首先,你需要了解你的系统在什么场景下存在限流的需求,例如有哪些接口需要限流、在什么情况下需要限流等等。在这个阶段中,你需要和业务对接人员进行沟通,了解产品的最大承载量、是否需要分区以及不同区之间的流量比例等。 2. 选择限流算法 常见的限流算法有令牌桶算法、漏桶算法以及计…

    Java 2023年5月24日
    00
  • Java面试题冲刺第七天–Spring框架1

    下面是Java面试题冲刺第七天–Spring框架1的完整攻略: 一、Spring框架概述 1.1 什么是Spring框架 Spring是一个轻量级的开源Java框架,简化了企业级应用的开发。Spring框架的主要优点在于它对常见的企业应用开发任务(如访问数据库、事务管理、远程调用等)的针对性支持。 1.2 Spring框架的优势 Spring框架降低了Ja…

    Java 2023年5月19日
    00
  • 快速入手IntelliJ IDEA基本配置

    下面是“快速入手IntelliJ IDEA基本配置”的完整攻略。 1. 下载并安装IntelliJ IDEA 首先需要去官网下载并安装IntelliJ IDEA。根据自己的操作系统,选择相应版本进行下载。 2. 配置JDK 如果你还没有安装Java开发工具包(JDK),建议你先下载并安装,然后进行环境变量配置。 在IntelliJ IDEA打开设置栏,选择P…

    Java 2023年5月19日
    00
  • java算法之静态内部类实现雪花算法

    下面我来为您详细讲解Java算法之静态内部类实现雪花算法的完整攻略。 什么是雪花算法 雪花算法是分布式系统中生成唯一ID的一种算法,其核心思想是在64位的二进制数中,用前41位作为时间戳,后23位作为机器标识和序列号,从而可以实现在分布式系统中生成唯一ID。 静态内部类实现雪花算法 算法设计思路 定义一个类Snowflake,其构造方法接收两个参数:机器ID…

    Java 2023年5月26日
    00
  • Java日常练习题,每天进步一点点(16)

    让我来为你详细讲解“Java日常练习题,每天进步一点点(16)”的完整攻略吧。 首先,这个练习题是一道比较典型的算法练习题,旨在让练习者熟悉并掌握常见的算法思想以及数据结构基本操作。下面我们将对这个练习题进行分析。 题目描述 给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。 示例说明 例如,输入s=”rabbbit”,t=”r…

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