//DataOutputStream类似于python的pickle,就是将内存里的东西序列化,没有经过转码.也可以将对象写入文件.
//BufferedWriter等方法写入文件是需要ascii,utf8等转码的
read
package demo;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
/**
* DataInputStream可以从字节流中直接转换出具体的数据类型
*/
public class demo {
public static void main(String[] args) throws Exception{
DataInputStream dis = new DataInputStream(new FileInputStream("d:/test.txt"));
//int age = dis.readInt();
//long readLong = dis.readLong();
//float readFloat = dis.readFloat();
//double readDouble = dis.readDouble();
//boolean readBoolean = dis.readBoolean();
//String readUTF = dis.readUTF();
String name = dis.readUTF();
int age = dis.readInt();
System.out.println(name);
System.out.println(age);
}
}
write
package demo;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
/**
* DataOutputStream是一个包装流,它可以将各种类型的数据在内部转成byte字节,然后利用FileOutputStream写入文件中
*/
public class demo {
public static void main(String[] args) throws Exception {
DataOutputStream dos = new DataOutputStream(new FileOutputStream("d:/test.txt"));
// 写入一个整数 4个字节
int age = 18;
//dos.writeInt(age);
// 写一个long 8个字节
//dos.writeLong(19999);
// 写一个float数据 4个字节
//dos.writeFloat(18.8f);
// 写一个double数据 8个字节
//dos.writeDouble(18.8);
// 写一个boolean值,true其实写入了一个1 ,false其实写入了一个0
//dos.writeBoolean(true);
// writeutf在写真正的数据的同时,会在前面加上2个字节的长度记录
dos.writeUTF("啊啊啊");
dos.writeInt(48);
dos.close();
}
}