java inputstream和outputstream_java runnable

java inputstream和outputstream_java runnable首页>基础教程>IO流>InputStream类JavaInputStream类java.io.InputStream类是所有JavaIO输入流的基类,它是以字节为单位的输出流。定义publicabstractclassInputStreamextendsObjectimplementsCloseable此抽象类是表示字节输入流的所有类的超类。需…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

首页 > 基础教程 > IO流 > InputStream类

Java InputStream类

java.io.InputStream类是所有Java IO输入流的基类,它是以字节为单位的输出流。

定义

public abstract class InputStream  extends Object  implements Closeable

此抽象类是表示字节输入流的所有类的超类。需要定义 InputStream 子类的应用程序必须总是提供返回下一个输入字节的方法。

类图

49f1a76d7d0487150fe03935917bfa95.png

BufferedInputStream: 提供了缓冲功能。

DataInputStream: 允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。

PipedInputStream: 允许以管道的方式来处理流。当连接到一个PipedOutputStream后,它会读取后者输出到管道的数据。

PushbackInputStream: 允许放回已经读取的数据。

SequenceInputStream: 能对多个inputstream进行顺序处理。

方法

例子

public class InputStreamDemo01{

public static void main(String args[]) throws Exception{    // 异常抛出,不处理

// 第1步、使用File类找到一个文件

File f= new File(“d:” + File.separator + “test.txt”) ;    // 声明File对象

// 第2步、通过子类实例化父类对象

InputStream input = null ;    // 准备好一个输入的对象

input = new FileInputStream(f)  ;    // 通过对象多态性,进行实例化

// 第3步、进行读操作

byte b[] = new byte[1024] ;        // 所有的内容都读到此数组之中

input.read(b) ;        // 读取内容   网络编程中 read 方法会阻塞

// 第4步、关闭输出流

input.close() ;                        // 关闭输出流

System.out.println(“内容为:” + new String(b)) ;    // 把byte数组变为字符串输出

}

};

总结

1. 如果你正在开发一个从流中读取数据的组件,请尝试用InputStream替代任何它的子类(比如FileInputStream)进行开发。这么做能够让你的代码兼容任何类型而非某种确定类型的输入流。

2. Java中的Inputstream是不能重复读取的,它的读取是单向的,因为读取的时候,会有一个pos指针,他指示每次读取之后下一次要读取的起始位置,当读到最后一个字符的时候,pos指针不会重置。

3. 如果想要重复使用InputStream对象,可以先把InputStream转化成ByteArrayOutputStream,后面要使用InputStream对象时,再从ByteArrayOutputStream转化回来就好了。

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/191168.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 手把手教你领取永久免费服务器

    手把手教你领取永久免费服务器01免费领取首先说下前提条件: 一张外币信用卡 务必用手机流量,不要用wifi 可以手机操作,当然你也可以手机热点给电脑,然后电脑操作,但不管怎么样,手机流量申请,成功率更高。小编操作演示,用手机热点给电脑。然后打开注册账号网页点击立即行动,进入注册账号页面。根据提示填写就行注意名字和姓氏和你的信用卡填写一致,地区就选中国,没问题。等注册信息完事之后,邮箱会收到验证邮件。邮箱验证完就会自动进入填写密码,选的服务器所在区域的页…

  • Java中 List 和 JSON字符串之间的相互转换

    Java中 List 和 JSON字符串之间的相互转换List转JSON字符串Listlist=newArrayList();Map<String,String>map=newHashMap<>();map.put("name","szy");map.put("num",2);list.add(map);StringinventoryResultStr=JSON.t…

    2022年10月17日
  • Java基础之增强型for循环

    Java基础之增强型for循环目录增强型for循环语法:for(ElementTypeelement:arrayName){};增强for循环的原理增强型for循环注意事项增强型for循环语法:for(ElementTypeelement:arrayName){};举个例子:(1)int[]numArray={1,2,3,4,5,6};for(inti:numArray…

  • idea2021.10 激活码mac版本-激活码分享

    (idea2021.10 激活码mac版本)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • Kafka零拷贝_kafka读取数据

    Kafka零拷贝_kafka读取数据Kafka除了具备消息队列MQ的特性和使用场景外,它还有一个重要用途,就是做存储层。用kafka做存储层,为什么呢?一大堆可以做数据存储的MySQL、MongoDB、HDFS……因为kafka数据是持久化磁盘的,还速度快;还可靠、支持分布式……啥!用了磁盘,还速度快!!!没错,kafka就是速度无敌,本文将探究kafka无敌性能背后的秘密。首先要有个概念,kafka高性能的背后…

  • 原码反码补码运算规则_正数的原码反码补码相同吗

    原码反码补码运算规则_正数的原码反码补码相同吗一.机器数和真值在学习原码,反码和补码之前,需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号,正数为0,负数为1.比如,十进制中的数+3,计算机字长为8位,转换成二进制就是00000011。如果是-3,就是10000011。那么,这里的00000011和10000011就是机器数。2、因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数100

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号