资讯专栏INFORMATION COLUMN

IO字节流11字节输入流一次读取多个字节

since1986 / 2352人阅读

摘要:字节输入流一次读取多个字节的方法从输入流中读取一定数量的字节,并将其存储在缓冲区数组中。


package com.itheima.demo02.InputStream;

import java.io.FileInputStream;
import java.io.IOException;

/*

字节输入流一次读取多个字节的方法:
    int read(byte[] b) 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。
明确两件事情:
    1.方法的参数byte[]的作用?
        起到缓冲作用,存储每次读取到的多个字节
        数组的长度一把定义为1024(1kb)或者1024的整数倍
    2.方法的返回值int是什么?
        每次读取的有效字节个数

String类的构造方法
    String(byte[] bytes) :把字节数组转换为字符串
    String(byte[] bytes, int offset, int length) 把字节数组的一部分转换为字符串 offset:数组的开始索引 length:转换的字节个数

*/
public class Demo02InputStream {

public static void main(String[] args) throws IOException {
    //创建FileInputStream对象,构造方法中绑定要读取的数据源
    FileInputStream fis = new FileInputStream("09_IOAndProperties.txt");
    //使用FileInputStream对象中的方法read读取文件
    //int read(byte[] b) 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。
    /*byte[] bytes = new byte[2];
    int len = fis.read(bytes);
    System.out.println(len);//2
    //System.out.println(Arrays.toString(bytes));//[65, 66]
    System.out.println(new String(bytes));//AB

    len = fis.read(bytes);
    System.out.println(len);//2
    System.out.println(new String(bytes));//CD

    len = fis.read(bytes);
    System.out.println(len);//1
    System.out.println(new String(bytes));//ED

    len = fis.read(bytes);
    System.out.println(len);//-1
    System.out.println(new String(bytes));//ED*/

    /*
        发现以上读取时一个重复的过程,可以使用循环优化
        不知道文件中有多少字节,所以使用while循环
        while循环结束的条件,读取到-1结束
     */
    byte[] bytes = new byte[1024];//存储读取到的多个字节
    int len = 0; //记录每次读取的有效字节个数
    while((len = fis.read(bytes))!=-1){
        //String(byte[] bytes, int offset, int length) 把字节数组的一部分转换为字符串 offset:数组的开始索引 length:转换的字节个数
        System.out.println(new String(bytes,0,len));
    }

    //释放资源
    fis.close();
}

}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76201.html

相关文章

  • IO节流10输入一次读取一个节的原理

    showImg(https://segmentfault.com/img/bVbwrKA?w=1045&h=512);

    shadajin 评论0 收藏0
  • 第十一章-IO流#yyds干货盘点#

    摘要:是一个系统支持的所有字符的集合,包括各国家文字标点符号图形符号数字等字符集简体中文码表。支持中国国内少数民族的文字,同时支持繁体汉字以及日韩汉字等字符集为表达任意语言的任意字符而设计,是业界的一种标准,也称为统一码标准万国码。 1 File1.1 File类的概述和构造方法File: 它是文件和目录路径名的抽象...

    不知名网友 评论0 收藏0
  • Java IO学习笔记三

    摘要:学习笔记三在整个包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流字符流的转换类。是字节流通向字符流的桥梁它使用指定的读取字节并将其解码为字符。主要的功能还是向文件中写入文件构造函数创建使用默认字符编码的。 Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类。 OutputStre...

    CodeSheep 评论0 收藏0
  • Java编程基础21——IO(节流)

    摘要:流按操作类型分为两种字节流字节流可以操作任何数据因为在计算机中任何数据都是以字节的形式存储的字符流字符流只能操作纯字符数据,比较方便。 1_IO流概述及其分类 1.概念 IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的类都在IO包中 流按流向分为两种:输入流,输出流。 流按操作类型分为两种: 字节流 : 字节流可以操作任何数据,因为在...

    yanbingyun1990 评论0 收藏0
  • IO节流12案例复制文件

    摘要:文件复制练习一读一写明确数据源数据的目的地文件复制的步骤创建一个字节输入流对象构造方法中绑定要读取的数据源创建一个字节输出流对象构造方法中绑定要写入的目的地使用字节输入流对象中的方法读取文件使用字节输出流中的方法把读取到的字节写入到目的地的 package com.itheima.demo03.CopyFile; import java.io.FileInputStream;impor...

    Rocture 评论0 收藏0

发表评论

0条评论

since1986

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<