※ 目的地
操作的是数组(缓存中)
※ byteArrayInputStream 输入字节数组流
package com.briup.IO;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.Arrays;
public class ByteArrayInPutStreamTest {
public static void main(String[] args) {
ByteArrayInputStream baos=null;
try {
byte[] b="helloworld".getBytes();
baos=new ByteArrayInputStream(b);
//跳过几个字节,在读取
//返回值跳过的字节数
long len=baos.skip(6);
System.out.println(len);
int data =baos.read();
System.out.println(data);
// byte[] buff=new byte[100];
// int data=baos.read(buff);
// System.out.println(Arrays.toString(buff));
//当前流中有多少字节可用
// System.out.println(baos.available());
//查看当前流支不支持mark标记
//System.out.println(baos.markSupported());
//104, 101, 108, 108, 111, 119, 111, 114, 108, 100
// int data=baos.read();
// System.out.println(data);//h
// data=baos.read();
// System.out.println(data);//e
// //mark的参数原本是限制后多少为之内reset可以回到
// //标记位置,不用管,不生效,不在受限多少位重置
// baos.mark(1);
// data=baos.read();
// System.out.println(data);//l
// data=baos.read();
// System.out.println(data);//l
// data=baos.read();
// System.out.println(data);//o
// //回到标记位置重新读取
// baos.reset();
// data=baos.read();
// System.out.println(data);
// data=baos.read();
// System.out.println(data);
// data=baos.read();
// System.out.println(data);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(baos!=null)
try {
baos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
※ byteArrayOutputStream 输出字节数组流
package com.briup.IO;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Arrays;
public class ByteArrayOutPutStreamTest {
public static void main(String[] args) {
ByteArrayOutputStream baos=null;
try {
// byte[] b="helloworld".getBytes();
byte[] b="中国".getBytes();
//构建字节数组输出流,目的地缓存中的数组
baos=new ByteArrayOutputStream();
baos.write(b);
baos.flush();
//查看缓存区的大小
//System.out.println(baos.size());
//将缓存中的数组提取出来成为一个新的数组
// System.out.println(Arrays.toString(baos.toByteArray()));
//将缓存中的字节数组转化为字符串
// System.out.println(baos.toString());
//将缓存中的字节数组转化特定编码的字符串
// System.out.println(baos.toString("GBK"));
//将缓存中的字节数组转向其他字节输出流
baos.writeTo(System.out);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}