为了方便的操作Java语言的基础数据类型和String的数据,可以使用DataInputStream和DataOutoutStream分别套接在InputStream和OutputStream。用于读写基本数据类型的变量和字符串。
将内存中的基本变量写入到data.txt文件中
/**
* 数据输出流测试
* 将内存中的基本变量写入到文件中
*/
@Test
public void test2() {
//创建输出数据流
DataOutputStream dataOutputStream = null;
try {
//将内存中的基本变量写入到文件中
dataOutputStream = new DataOutputStream(new FileOutputStream("data.txt"));
dataOutputStream.writeUTF("张三");
dataOutputStream.flush();
dataOutputStream.writeInt(18);
dataOutputStream.flush();
dataOutputStream.writeBoolean(true);
dataOutputStream.flush();
dataOutputStream.writeDouble(18.5);
dataOutputStream.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
//关闭流
if (dataOutputStream != null) {
try {
dataOutputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
data.txt文件中的内容
将data.txt文件中的基本变量数据读取到内存中
/**
* 数据输入流测试
* 将文件中的基本变量数据读取到内存中
*/
@Test
public void test3() {
//创建输入数据流
DataInputStream dataInputStream = null;
try {
//将文件中的数据读取到内存中
dataInputStream = new DataInputStream(new FileInputStream("data.txt"));
//读取文件中数据的顺序和写入文件的顺序要一致的,否则会报错
String name = dataInputStream.readUTF();
System.out.println(name);
int age = dataInputStream.readInt();
System.out.println(age);
boolean isMale = dataInputStream.readBoolean();
System.out.println(isMale);
double money = dataInputStream.readDouble();
System.out.println(money);
} catch (Exception e) {
e.printStackTrace();
} finally {
//关闭流
if (dataInputStream != null) {
try {
dataInputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
结果: