数据流
package IOStudy;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* 数据流
* DataInputStream
* DataOutputStream
* 保留数据,保留数据类型
* 1.先写出后读取
* 2.读取的顺序与写出保持一致
*
* @author pmc
*
*/
public class RWTest4 {
public static void main(String[] args) throws IOException {
test01();
test02();
}
//基本数据类型
private static void test01() throws IOException{
// 写出
ByteArrayOutputStream bo = new ByteArrayOutputStream();// 字符数组
DataOutputStream x = new DataOutputStream(new BufferedOutputStream(bo));// 写出数据流(字节缓冲流(字符数组))
x.writeUTF("写入测试");
x.writeInt(20);
x.writeBoolean(false);
x.writeChar('a');
x.flush();
byte[] datas = bo.toByteArray();// 转byte[] 数组
System.out.println(datas.length);
// 读
DataInputStream d = new DataInputStream(new BufferedInputStream(new ByteArrayInputStream(datas)));// 读取数据流(字节缓冲流(字节数组流))
// 读取的顺序与写出一致
String msg = d.readUTF();
int age = d.readInt();
boolean flag = d.readBoolean();
char chr = d.readChar();
System.out.println(flag);
}
//文件
private static void test02() throws IOException{
// 写出
ByteArrayOutputStream bo = new ByteArrayOutputStream();// 字符数组
DataOutputStream x = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("txt.txt")));// 写出数据流(字节缓冲流(字符数组))
x.writeUTF("测试文件系统");
x.writeInt(1024);
x.flush();
byte[] datas = bo.toByteArray();// 转byte[] 数组
System.out.println(datas.length);
// 读
DataInputStream d = new DataInputStream(new BufferedInputStream(new FileInputStream("txt.txt")));// 读取数据流(字节缓冲流(字节数组流))
// 读取的顺序与写出一致
String msg = d.readUTF();
int b=d.readInt();
System.out.println(b);
}
}