java中inputstream_Java InputStream类

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

首页 > 基础教程 > 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://bianchenghao.cn/35379.html

(0)
编程小号编程小号

相关推荐

发表回复

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