java基础之IO流--ByteArrayInputStream(没有使用系统资源不会抛异常的IO流对象)
2017-09-05 01:09
531 查看
ByteArrayInputStream 包含一个内部缓冲区,该缓冲区包含从流中读取的字节。内部计数器跟踪 read 方法要提供的下一个字节。
关闭 ByteArrayInputStream 无效。此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOException。
构造方法:
ByteArrayInputStream(byte[] buf)
创建一个 ByteArrayInputStream,使用 buf 作为其缓冲区数组。
ByteArrayInputStream(byte[] buf, int offset, int length)
创建 ByteArrayInputStream,使用 buf 作为其缓冲区数组。
ByteArrayOutputStream
此类实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray() 和 toString() 获取数据。
关闭 ByteArrayOutputStream 无效。此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOException。
源设备:
键盘 System.in 硬盘 FileStream
内存 ArrayStream
目的设备:
控制台 System.out 硬盘 FileStream
内存 ArrayStream
用流的思想来操作数组
package newFeatures8;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
public class ByteArrayInputStreamDemo {
public static void main(String[] args) {
//不抛异常,也无需关流,因为它不操作系统资源
//也就是说当不操作系统资源时可以用它
ByteArrayInputStream bis=new ByteArrayInputStream("我是小孩也是王".getBytes());
ByteArrayOutputStream bos=new ByteArrayOutputStream();
int b=0;
while((b=bis.read())!=-1){
bos.write(b);
}
System.out.println(bos.size());
System.out.println(bos.toString());
//一通百通
//同理:CharArrayReader 和 CharArrayWriter
//同理:StringReader 和 StringWriter
}
}
关闭 ByteArrayInputStream 无效。此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOException。
构造方法:
ByteArrayInputStream(byte[] buf)
创建一个 ByteArrayInputStream,使用 buf 作为其缓冲区数组。
ByteArrayInputStream(byte[] buf, int offset, int length)
创建 ByteArrayInputStream,使用 buf 作为其缓冲区数组。
ByteArrayOutputStream
此类实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray() 和 toString() 获取数据。
关闭 ByteArrayOutputStream 无效。此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOException。
源设备:
键盘 System.in 硬盘 FileStream
内存 ArrayStream
目的设备:
控制台 System.out 硬盘 FileStream
内存 ArrayStream
用流的思想来操作数组
package newFeatures8;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
public class ByteArrayInputStreamDemo {
public static void main(String[] args) {
//不抛异常,也无需关流,因为它不操作系统资源
//也就是说当不操作系统资源时可以用它
ByteArrayInputStream bis=new ByteArrayInputStream("我是小孩也是王".getBytes());
ByteArrayOutputStream bos=new ByteArrayOutputStream();
int b=0;
while((b=bis.read())!=-1){
bos.write(b);
}
System.out.println(bos.size());
System.out.println(bos.toString());
//一通百通
//同理:CharArrayReader 和 CharArrayWriter
//同理:StringReader 和 StringWriter
}
}
相关文章推荐
- JAVA基础学习day22--IO流四-对象序列化、管道流、RandomAccessFile、DataStream、ByteArrayStream、转换流的字符编码
- 【Java基础知识】IO流--内存操作流ByteArrayInputStream、ByteArrayOutputStream
- JAVA基础学习(二十二)--IO流四-对象序列化、管道流、RandomAccessFile、DataStream、ByteArrayStream、转换流的字符编码
- Java基础---Java---IO流-----对象的序列化、管道流、RandomAccessFile、数据类型的流对象DataStream、ByteArrayStream
- Java基础---Java---IO流-----对象的序列化、管道流、RandomAccessFile、数据类型的流对象DataStream、ByteArrayStream
- 黑马程序员_Java基础_IO流_字节流,字节流操作文件,缓冲区字节流,流的使用规律,异常记录原理
- Java IO:ByteArrayInputStream使用详解及源码分析
- Java基础---ByteArrayInputStream、ByteArrayOutputStream
- Java使用ObjectOutputStream和ObjectInputStream序列号对象报java.io.EOFException异常的解决方法
- 我的Java开发学习之旅------>Java使用ObjectOutputStream和ObjectInputStream序列号对象报java.io.EOFException异常的解决方法
- 黑马程序员——Java基础——IO流笔记(InputStreamReader和OutputStreamWriter使用示例)
- 在java开发过程中什么时候使用ByteArrayInputStream和ByteArrayOuitputStream?
- Java基础之IO流,合并流对象SequenceInputStream对文件的切割与合并操作
- Java IO流学习总结六:ByteArrayInputStream、ByteArrayOutputStream
- 黑马程序员——Java基础——IO流笔记(PipedInputStream和PipedOutputStream使用示例)
- 黑马程序员_java_IO流_FileInputStream_FileOutputStream_File_递归_Properties_ByteArrayInputStream_ByteArrayOut
- 黑马程序员——Java基础——IO流笔记(ObjectInputStream和ObjectOutputStrem使用示例)
- Java IO流学习总结六:ByteArrayInputStream、ByteArrayOutputStream
- Java基础知识强化之IO流笔记33:转换流之InputStreamReader的使用
- java基础知识回顾之javaIO类--内存操作流ByteArrayInputStream和ByteArrayOutputSteam(操作字节数组)