字节流
Posted 暗影蔽日
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字节流相关的知识,希望对你有一定的参考价值。
java最基本字节流类的顶层类有两个,一个是基本输入流InputStream类,另一个是基本输出流OutputStream类,为Object类派生,同时InputStream和OutputStream又派生很多子类。
所有的字节流都是InputStream抽象类和OutputStream抽象类的子类。在创建流时通过创造它们的子类来创造流
- read()从流中读取一个字节(整型),遇到尾返回-1
- int read(byte[] b)读取b.length个字节存入数组b中,返回实际读取的字节数
- int read(byte[] b,int off,int len)返回实际读取的字节数
- int available()返回流中可读字节数
- void close()关闭输入流
流式输入最基本的特点就是读操作的顺序性,每个流都有一个位置指针,它在流刚被创建式产生并指向流的第一个数据,以后的每次读操作都是在当前位置指针处执行,伴随流操作的执行,位置指针自动后移,指向下一个未被读取的数据。Inputstream用来控制位置指针的有以下几个:
- public long skip(long n)
- public void mark()在当前位置指针处做一个标记
- public void reset()将位置指针返回到标记的位置
import java.io.*; public class ByteArray { public static void main(String[] args) { byte[] byteArray = new byte[10];//声明、定义数组 byte[] byteArr2 = new byte[10]; DataInputStream data = new DataInputStream(System.in);/*创建数据输入流对象*/ ByteArrayInputStream byteStream; try { data.read(byteArray);//执行对象方法从键盘上输入数据放入字节数组中 byteStream = new ByteArrayInputStream(byteArray);/*创建字节数组输入流对象*/ byteStream.read(byteArr2,3,5);/*将流中前5字节放入byteArray2的第三位置之后*/ } catch (IOException e) { System.out.println(e.toString()); } for(int i=0;i<byteArray.length;i++) System.out.print(byteArray[i] + " ");//打印数组元素 System.out.println(); for(int i = 0;i<byteArr2.length;i++) System.out.print(byteArr2[i] + " "); } }
以上是关于字节流的主要内容,如果未能解决你的问题,请参考以下文章