与OutputStream类对应的是资杰输入流,InputStream主要是实现的就是字节数组读取。

public abstract class InputStream extends Object implements Closeable

在OutputStream里面定义有如下几个核心方法:

  • 读取单个字节数据:public abstract int read() throws IOException (返回具体的字节数据,如果现在已经读取到底了返回-1)
  • 读取一组字节数据:public int read​(byte[] b) throws IOException 最常用 (读取一组字节数组,返回的是读取的个数,如果没有数据已经读取到底了则返回-1)
  • 读取一组字节数据部分内容(off-len):public int read​(byte[] b, int off, int len) throws IOException

IputStream类属于一个抽象类,这时应该依靠它的子类来实例化对象,如果要从文件读取一定使用FileInputStream子类,对于子类而言只关心父类对象的实例化,构造方法:public FileInputStream​(File file) throws FileNotFoundException

范例:读取数据

package 字节流与字符流;import java.io.*;public class InputStream字节输入流 {public static void main(String[] args) throws IOException {File file = new File("F:"+File.separator+"Test"+File.separator+"test.txt");InputStream input = new FileInputStream(file);byte[] data = new byte[1024];   //开辟一个缓冲区读取数据int length = input.read(data);   //读取数据,数据保存在字节数组之中,返回读取个数System.out.println(new String(data,0,length));  //从0开始到字节数组长度转换成字符串input.close();}
}

www.baidu.comwww.baidu.comwww.baidu.comwww.baidu.comwww.baidu.comwww.baidu.com

这时已经将文件中的内容读取出来了

对于输入流里面最为麻烦的问题就在于使用read()方法读取的时候只能只能够以字节数组进行接收。

从JDK1.9开始在InputStream类里面增加了一个新的方法:

读取全部字节:public byte[] readAllBytes() throws IOException

package 字节流与字符流;import java.io.*;public class InputStream字节输入流 {public static void main(String[] args) throws IOException {File file = new File("F:"+File.separator+"Test"+File.separator+"test.txt");InputStream input = new FileInputStream(file);byte[] data = input.readAllBytes();   //读取数据,数据保存在字节数组之中,返回读取个数System.out.println(new String(data));  //从0开始到字节数组长度转换成字符串input.close();}
}

如果现在要读取的内容很大,那么这种读取会直接使程序崩溃。

(字节流与字符流)InputStream字节输入流相关推荐

  1. 字节流转化为文件流_JAVA IO分析一:File类、字节流、字符流、字节字符转换流...

    因为工作事宜,又有一段时间没有写博客了,趁着今天不是很忙开始IO之路:IO往往是我们忽略但是却又非常重要的部分,在这个讲究人机交互体验的年代,IO问题渐渐成了核心问题. 一.File类 在讲解File ...

  2. 字节流和字符流简单操作

    常用的I/O流: 1.字节流: /*** 输出字节流--写操作** @param filePath*/public static void fileOutputStreamTest(String fi ...

  3. java.IO字节流和字符流详解

    IO流的分类 在学习字节流和字符流之前因该先学习IO流的分类,效果会更好 有多种分类方式: 一种方式是按照流的方向进行分类: 以内存作为参照物, 往内存中去,叫做输入(Input).或者叫做读(Rea ...

  4. 面试避坑手册之 Java字节流和字符流总结IO流!

    从接收输入值说起 在日常的开发应用中,有时候需要直接接收外部设备如键盘等的输入值,而对于这种数据的接收方式,我们一般有三种方法:字节流读取,字符流读取,Scanner 工具类读取. 字节流读取 直接看 ...

  5. Java总结IO篇之字节流与字符流转化

    本篇接上篇:Java中的字符流,流的读写的细节参考上篇 本篇讲述字节流相关话题,包括字节流的读取与写出,字节流转化为字符流 1.明确是否是纯文本:纯文本 ? 字符流: 字节流 2.明确数据来源( 输入 ...

  6. Java字节流和字符流,是时候总结一下IO流了

    Java字节流和字符流,是时候总结一下IO流了 从接收输入值说起 字节流读取 字符流读取 Scanner 读取 什么是 IO 流 字节流和字符流 字节流 字节输入流 字节输出流 缓冲流的原理 字符流 ...

  7. 1.8 Java字节流和字符流的区别,如何区分输入流和输出流?

    Java字节流和字符流的区别 首先我们先大概总结一下前面学习的内容,可分为以下几点: 以 Stream 结尾都是字节流,Reader 和 Writer 结尾都是字符流. InputStream 是所有 ...

  8. java字符流实际上也是字节,[Java教程]Java字节流与字符流的区别

    [Java教程]Java字节流与字符流的区别 0 2017-05-22 12:00:42 字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身 ...

  9. java字节流转字符串_字节流与字符流的区别及相互转换

    先来看一下流的概念: 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输出都是以流的形 ...

最新文章

  1. python中停车收费问题_使用CKRule实现停车场收费计算
  2. Developerkit Link Develop Demo 环境配置指南
  3. PHP读取远程文件并保存
  4. boost::movelib::unique_ptr相关用法的测试程序
  5. ASP.NET Core 2.1中基于角色的授权
  6. ​esquisse: 快速可视化图形的 Rstudio 插件
  7. R语言-单一变量分析
  8. 单片机定时器_51单片机的定时器如何计算初值?
  9. 数据库的事务和隔离级别
  10. Verilog实现UART串口收发器数字电路
  11. python找出列表间隐含的关联关系以及重复模式
  12. 【语音处理】基于matlab GUI音频信号提取分析【含Matlab源码 1738期】
  13. emui内核支持kvm吗_EMUI和MIUI为什么不基于安卓linux内核不使用虚拟机直接用c++开发一些更流畅系统自带软件呢?...
  14. Aliplayer简单使用
  15. SPSS新手教程——通过探索性分析,检验数据的正态性分布
  16. 中国微型电动车行业市场供需与战略研究报告
  17. mysql 查询当前时间是星期几
  18. Pandas 实用技能,数据筛选 query 函数详细介绍
  19. hao123站长李兴平的成功史
  20. Floyd 算法+例题

热门文章

  1. 新手学习FPGA----如何将软硬件程序固化进串行Flash芯片EPCS
  2. Ubuntu删除多余内核
  3. (win11)VMware虚拟机Ubuntu系统--C语言(操作系统实验课)
  4. css判断iPhone样式
  5. 使用树莓派连接LED灯
  6. 【图像分割】ExG超绿特征灰度化、二值化分割(Matlab及Python代码实现)
  7. 梯度下降法(详细讲解)
  8. 【无标题】认知智能中国原生智能科技体系 一文看懂认知智能 道翰天琼认知智能奠基者领导者
  9. Perameter estimation for text analyse (下)
  10. python读取与保存图片的exif信息