1.有时没有必要存储整个对象的信息,而只是要存储一个对象的成员数据,成员数据的类型假设都是Java的基本数据类型,这样的需求不必使用到与Object输入、输出相关的流对象,可以使用DataInputStream、DataOutputStream来写入或读出数据。下面是一个例子:
package ysu.hxy;
public class Member {
private String name;
private int age;
public Member() {
}
public Member(String name, int age) {
this.name = name;
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
打算将Member类实例的成员数据写入文件中,并打算在读入文件数据后,将这些数据还原为Member对象。下面的代码简单示范了如何实现这个需求。
package ysu.hxy;
import java.io.*;
public class DataStreamDemo
{
public static void main(String[] args)
{
Member[] members = {new Member("Justin",90),
new Member("momor",95),
new Member("Bush",88)};
try
{
DataOutputStream dataOutputStream = new DataOutputStream(new FileOutputStream(args[0]));
for(Member member:members)
{
//写入UTF字符串
dataOutputStream.writeUTF(member.getName());
//写入int数据
dataOutputStream.writeInt(member.getAge());
}
//所有数据至目的地
dataOutputStream.flush();
//关闭流
dataOutputStream.close();
DataInputStream dataInputStream = new DataInputStream(new FileInputStream(args[0]));
//读出数据并还原为对象
for(int i=0;i<members.length;i++)
{
//读出UTF字符串
String name = dataInputStream.readUTF();
//读出int数据
int score = dataInputStream.readInt();
members[i] = new Member(name,score);
}
//关闭流
dataInputStream.close();
//显示还原后的数据
for(Member member : members)
{
System.out.printf("%s\t%d%n",member.getName(),member.getAge());
}
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
在从文件读出数据时,不用费心地自行判断读入字符串时或读入int类型时何时将停止,使用对应的readUTF()和readInt()方法就可以正确地读入完整的类型数据。
分享到:
相关推荐
里我们来看一下Java的DataInputStream和DataOutputStream数据输入输出流的使用示例,两个类分别继承于FilterInputStream和FilterOutputStream:
主要介绍了java DataInputStream和DataOutputStream详解及实例代码的相关资料,需要的朋友可以参考下
【IT十八掌徐培成】Java基础第16天-05.DataInputStream-DataOutputStream-FilterStream.zip
本例演示了如何自定义缓存区,并使用不具有缓冲功能的DataInputStream 和DataOutputStream 类来读写大块的数据文件。效果如图所示,当按下“Start”按钮后,程序从源文件“d:\image.jpg”读取指定大小(缓冲区的大小...
运用File类进行文件操作 理解流,标准输入/输出流的概念 运用FileInputStream和FileOutputStream类读写文本文件 运用BufferedReader和BufferedWriter类读写...运用DataInputStream和DataOutputStream类 读写二进制文件
1、在读写文件时必须的 2、File类 3、流 4、读写文件 运用FileInputStream和FileOutputStream类读写文本文件 运用BufferedReader和BufferedWriter类读写文本...运用DataInputStream和DataOutputStream类读写二进制 文件
SWING-III.pptJava学习资料 运用File类进行文件操作 理解流,标准输入/输出流的概念 运用FileInputStream和FileOutputStream类读写文本文件 ...运用DataInputStream和DataOutputStream类 读写二进制文件
(1) 理解流式输入输出的基本原理。...(2) 掌握DataInputStream和DataOutputStream类的使用方法。 (3) 掌握File、FileInputStream、FileOutputStream类的使用方法。 (4) 掌握RandomAccessFile类的使用方法。
Java读取和写入二进制大文件的方法,应该说是一个基于二进制的大文件块,演示了如何自定义缓存区,并使用不具有缓冲功能的DataInputStream 和DataOutputStream 类来读写二进制的大文件块数据,运行效果请参见如下...
java IO 字节流练习代码 FileInputStream和FileOutputStream BufferedInputStream 和 ...DataInputStream 和 DataOutputStream ObjectInputStream和ObjectOutputStream PrintStream PushbackInputStream
7.1.1 流的含义 7.1.2 流的层次结构 7.1.3 标准输入输出 7.1.4 File类 ...7.1.6 DataInputStream类和DataOutputStream类 7.1.7 随机访问文件 7.1.8 Reader类和Writer类 7.1.9 IOException类的几个子类
过滤流DataInputStream 和DataOutputStream 除了分别作为FilterInputStream 和FilterOutputStream的子类外,还分别实现了接口DataInput 和DataOutput。接口DataInput 中定义的方法主要包括从流中读取基本类型的数据
1.DataInputStream,DataOutputStream 从Stream里读取基本类型的数据 BufferedReader,BufferedWriter 从Reader/Writer里读取基本类型的数据 2.BufferedInputStream,BufferedOutputStream 封装了从缓冲区读写指定...
实际上,除了实现DataInput和 DataOutput接口之外(DataInputStream和DataOutputStream也实现了这两个接口),它和这两个类系毫不相干,甚至不使用InputStream和OutputStream类中已经存在的任何功能;它是
了解java.io包 运用File类对文件或目录的属性进行操作 理解流,理解输入/输出流的概念 运用FileInputStream类和FileOutputStream类读/写字节文件 ...运用DataInputStream类和DataOutputStream类读写数据文件
1.服务端Java(MyServer)/客户端Android(SocketTest); 2.数据流DataInputStream、DataOutputStream; 3.注意测试时手机端和服务器端应处于同一网段。
用JAVASCRIPT操作二进制数据,把它们变成16进制字符串。也可以把字符串变回二进制。还有按ieee-754标准读写INT,FLOAT等数据类型,和DataInputStream/DataOutputStream非常相似.
说到Java的基本数据类型必须谈到的两个类是DataInputStream和DataOutputStream。它们提供了对Java基本数据类型的操作,但是这些方法事实上是在两个重要的接口中定义的DataInput和DataOutput,它们的功能就是把二...
Java的DataInputStream和DataOutputStream的低端版本。