package A10_IOStream;

import java.io.FileInputStream;
import java.io.IOException; /*
java.io.InputStream字节输入了,该抽象类是表示字节输入流的所有类的超类
共性方法:
int read()从输入流中读取数据的下一个字节。
int read(byte[] b)从输入流中读取一定数量的字节,并存储在缓冲区数组b中。
void close()关闭此输入流并释放与该流关联的所有系统资源 java.io.FileInputStream extends InputStream:文件字节输入流
作用:把硬盘中的文件数据,读取到内存中使用
构造方法:
FileInputStream(File file)通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的 File 对象 file 指定。
FileInputStream(FileDescriptor fdObj)通过使用文件描述符 fdObj 创建一个 FileInputStream,该文件描述符表示到文件系统中某个实际文件的现有连接。
FileInputStream(String name)通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的路径名 name 指定。
构造方法作用:
1.创建FileInputStream对象
2.把FileInputStream对象指向构造方法要读取的文件
文件读取原理
java程序-->JVM-->OS-->OS读取数据的方法-->读取文件
字节输入流的使用步骤(重点)
1.创建对象 2.读取文件 3.释放资源
*/
public class D02_FileInputStream {
public static void main(String[] args) throws IOException {
/* 一次读取一个字节
布尔表达式(len=fis.read())!=-1
1.fis.read()读取一个字节
2.len=fis.read()将读取结果赋值给变量len
3.(len=fis.read())!=-1判断变量len的值是否等于-1
数值转字符方法:(char)num
*/
FileInputStream fis = new FileInputStream("test.txt"); //文件内容abc
int len=0;
//每次读取一个字节,读取到文件末尾后调用read()方法会返回-1
while((len=fis.read())!=-1){
System.out.print((char)len); //abc
}
System.out.println("----");
fis.close(); //关闭字节流,释放资源 /* 字节流一次读取多个字节方法
int read(byte[] b)
1.参数byte[] b:起缓冲作用,存储每次读取到的多个字节;数组的长度一般定义为1024(1kb)或者1024的倍数
2.方法的返回值:每次读取的有效字节个数
*/
FileInputStream fis2 = new FileInputStream("test.txt");
byte[] buff=new byte[1024];
int rlen=0;
while ((rlen=fis2.read(buff))!=-1){ //文件尾再读取返回值-1
System.out.println(new String(buff,0,rlen)); //写入读取的有效字节个数,从下标0开始rlen个
}
fis2.close();
}
}

0425-字节输入流FileInputStream的更多相关文章

  1. 字节输入流 FileInputStream

    字节输入流 InputStream : 方法介绍: read(); 读取下一个字节 返回-1读取文件结束 close(); 复制文件 将数据aaa.txt复制到d盘 字节输入流读---->字节输 ...

  2. 字节输入流_InputStream类&FileInputStream类介绍和字节输入流读取字节数据

    java.io.InputStream:字节输入流 此抽象类是表示字节输入流的所有类的超类 定义了所有子类共性的方法: int read()从输入流中读取数据的下一个字节 int read(byte[ ...

  3. 字节输出流的续写和换行和字节输入流InputStream类&FileInputStream类介绍

    数据追加续写 每次程序运行,创建输出流对象,都会清空目标文件中的数据.如何保目标文件中的数据,还能继续添加新数据呢? public FileOutputStream(File file,boolean ...

  4. FileInputStream字节输入流

    FileInputStream字节输入流 编码思想:首相顶一个FileInputStream字节输入流对象,fis设置为nul,在try/catch里面放入FileInputStream字节输入流对象 ...

  5. java 20 - 9 带有缓冲区的字节输出流和字节输入流

    由之前字节输入的两个方式,我们可以发现,通过定义数组读取数组的方式比一个个字节读取的方式快得多. 所以,java就专门提供了带有缓冲区的字节类: 缓冲区类(高效类) 写数据:BufferedOutpu ...

  6. File类的基本操作之InputStream字节输入流

    话不多少,我直接把代码贴上来了.有什么问题请给我留言 package org.mark.streamRW; import java.io.File; import java.io.FileInputS ...

  7. InputStream字节输入流

    1.字节输入流——硬盘中数据写出到内存中供解析使用: 根据文件存储原理,8位二进制组成为一个字节,换算后的数值在0-127则查询ASCII码表,其他则查询系统默认表,如简体中文查询GBK表: 2.Fi ...

  8. [19/03/30-星期六] IO技术_四大抽象类_ 字节流( 字节输入流 InputStream 、字符输出流 OutputStream )_(含字节文件缓冲流)

    一.概念及分类 InputStream(输入流)/OutputStream(输出流)是所有字节输入输出流的父类 [注]输入流和输出流的是按程序运行所在的内存的角度划分的 字节流操作的数据单元是8的字节 ...

  9. java IO流 之 字节输入流 InputString()

    学习java的重点之一:InputStream  字节输入流的使用 (1)FileInputstream: 子类,读取数据的通道 使用步骤: 1.获取目标文件:new File() 2.建立通道:ne ...

  10. 00090_字节输入流InputStream

    1.字节输入流InputStream (1)通过InputStream可以实现把内存中的数据写出到文件: (2)把内存中的数据写出到文件InputStream此抽象类,是表示字节输入流的所有类的超类. ...

随机推荐

  1. 内衣 ERP 系统 (Delphi)

    服装行业ERP系统,当时从开始实施推行,最后二次开发,源代码交接... 发几个截图看看 可配置的查询 这个功能几乎被我全改过... 后台报表配置 欢迎微信搜一搜 IT软件部落 关注公众号,你可以了解更 ...

  2. 重磅推出 Sdcb Chats:一个全新的开源大语言模型前端

    重磅推出 Sdcb Chats:一个全新的开源大语言模型前端 在当前大语言模型(LLM)蓬勃发展的时代,各类 LLM 前端层出不穷.那么,为什么我们还需要另一个 LLM 前端呢? 最初的原因在于质感的 ...

  3. js模拟点击下载文件到本地

    function fake_click(obj) { var ev = document.createEvent("MouseEvents"); ev.initMouseEvent ...

  4. c#之示波器功能

    c#上位机:示波器功能 好久没有更新了,因为最近主要学习了如何用c#去做一个示波器功能,这里的示波器主要是用于单片机的调试.下面,我主要分享一下我做示波器的一些心得: 我这里示波器是用winform做 ...

  5. uniapp使用EventBus实现页面间数据传递

    前情 最近在做小程序项目,选用是当前比较火的uniapp技术栈,经常会遇到页面间消息传递的需求. 为什么要这么做? uniapp页面间数据通信方式有很多:通过url传参,状态管理库vuex/pinia ...

  6. C/C++源码扫描系列- codeql 篇

    首发于 https://xz.aliyun.com/t/9275 概述 codeql 是一个静态源码扫描工具,支持 c, python, java 等语言,用户可以使用 ql 语言编写自定义规则识别软 ...

  7. liunx安装docker,portainer,mysql,rabbitMQ,nacos

    由于公司框架迭代了,故此写个随笔,记录一下,方便日后回顾 1.准备 阿里云服务器(liunx CentOS 7.6) 2.前置工作 (1)查看系统版本 lsb_release -a (2)查看系统以及 ...

  8. Slate文档编辑器-TS类型扩展与节点类型检查

    Slate文档编辑器-TS类型扩展与节点类型检查 在之前我们基于slate实现的文档编辑器探讨了WrapNode数据结构与操作变换,主要是对于嵌套类型的数据结构类型需要关注的Normalize与Tra ...

  9. RepeatReadRequestWrapper

    package cn.service.web.common.filter; import com.alibaba.fastjson.JSON; import org.apache.commons.io ...

  10. Netty 缓存buffer介绍及使用

    每当你需要传输数据时,它必须包含一个缓冲区.Java NIO API 自带的缓冲区类是相当有限的,没有经过优化,使用 JDK 的ByteBuffer 操作更复杂.缓冲区是一个重要的组建,它是 API的 ...