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原创文章,未经本站允许不得转载。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • modelsim-win64-10.4-se 破解(win7实验成功)(其他操作系统也可参考,大同小异)

    modelsim-win64-10.4-se 破解(win7实验成功)(其他操作系统也可参考,大同小异)下载好的文件如下图,包括安装文件以及破解文件:1、运行modelsim-win64-10.4-se.exe,安装软件;     注意事项:安装路径可自行设置,但不要出现汉字。本例安装路径为:D:\modeltech64_10.4\win642、将解压的破解文件(MentorKG.exe和patch_dll.bat)复制到安装目录下的win64文件夹中。3、进入安装目录下的win64 文件夹…

    2022年5月10日
    118
  • opencv的imread函数_opencv imwrite

    opencv的imread函数_opencv imwrite近日,开始学习图像处理,思前想后决定以opencv作为实验基础。遂完成图片读取和显示功能。Imread作为常用的图像读取函数,虽然简单,但是参数的选择非常重要,直接影响到后期处理。同时在调试学习过程中也可以学习到图像处理的知识。0函数原型   Matimread(constString&filename,intflags=IMREAD_COLOR);

    2022年10月14日
    3
  • linux 通配符

    linux 通配符*–代表所有字符?-通配符,代表一个字符,一个?代表只匹配一个字符????4个?代表匹配4个字符;分号两个命令之间的分隔符#文件里面的注释|管道~用户家目录-上一次目

    2022年7月3日
    25
  • linux配置虚拟ip_虚拟机静态ip

    linux配置虚拟ip_虚拟机静态ipLinux下配置网卡ip别名何谓ip别名?用windows的话说,就是为一个网卡配置多个ip。什么场合增加ip别名能派上用场?布网需要、多ip访问测试、特定软件对多ip的需要…andsoon.下面通过几个例子简单介绍一下如何使用ifconfig命令给网卡配置ip别名。一、首先为服务器网卡配置静态ip地址#ifconfigeth0192.168.6.99netmask25…

    2022年10月20日
    3
  • pycharm搭配anaconda_在anaconda中安装pycharm

    pycharm搭配anaconda_在anaconda中安装pycharm为了以后自己忘记可以不用再去找方法,在此记下步骤一、为已存在的project设置环境File–Settings–Pythoninterpreter找到自己Anaconda下的python.exe这里勾选makeavailabletoallprojects在这里就可以看到这个环境里有什么包了,可以看到高亮部分有pandas二、newproject在这里要选择previouslyconfiguredinterpreter点击右边的…进行设置在Cond

    2022年8月29日
    4
  • HIBERNATE学习笔记

    HIBERNATE学习笔记

    2021年5月7日
    133

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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