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、PrintStream 等类的使用,以及对象的序列化和反序列化。通过实验,我们可以掌握流的概念分类、字符串常用操作方法、流的构造和应用...
Java中的`DataInputStream`和`DataOutputStream`是用于处理基本数据类型流的类,它们都位于`java.io`包中。这两个类是为了解决在进行网络通信或磁盘存储时,需要高效、有序地读写Java基本数据类型的问题。 `...
在Java的I/O系统中,`DataInputStream`和`DataOutputStream`以及`FilterStream`是处理数据输入和输出的关键类,它们对于程序的文件操作和网络通信起着至关重要的作用。本教程将深入讲解这些类的功能、用法以及它们在...
总结来说,Java中的DataInputStream和DataOutputStream类是处理原始数据输入输出的关键工具。在上述代码示例中,它们被用来实现简单的字符串加解密和文件操作,但在实际应用中,通常会结合更复杂的加密算法和安全...
DataInputStream 和 DataOutputStream 类是Java 网络编程中用于实现数据的输入和输出的类。DataInputStream 类用于从流中读取基本类型的数据,DataOutputStream 类用于将基本类型的数据写入流中。 知识点6:多线程...
本例演示了如何自定义缓存区,并使用不具有缓冲功能的DataInputStream 和DataOutputStream 类来读写大块的数据文件。效果如图所示,当按下“Start”按钮后,程序从源文件“d:\image.jpg”读取指定大小(缓冲区的大小...
在 ChatClient.java 中,我们使用 DataInputStream 和 DataOutputStream 类来读取和写入数据。 4. 线程 线程是指在程序中使用多线程来实现并发执行的技术。Java 语言提供了 Thread 类来实现这种技术。Thread 类...
- tkSocket.java中服务端代码使用了DataOutputStream和DataInputStream来进行数据的发送和接收。服务端首先监听9999端口,等待客户端的连接。当连接建立后,服务端会发送数据,并接收客户端回传的数据。 Eclipse...
在处理数据输入和输出时,Java提供了DataInputStream和DataOutputStream类,这两个类主要用于将基本数据类型和字符串在字节流中进行读写操作。它们分别实现了DataInput和DataOutput接口,这两个接口定义了一系列方法...
在 Java 中,还可以使用 DataInputStream 和 DataOutputStream 类来读写文件。这些类可以用于读写基本类型的数据,如 int、double 等。 文件操作——使用 BUFFEREDREADER 和 PRINTWRITER 类以字符方式读写文件 在 ...
在Java编程语言中,`DataInputStream`和`DataOutputStream`是用于处理基本数据类型的输入输出操作的类。这两个类在处理二进制数据时非常有用,因为它们提供了以机器无关的方式来读取和写入基本Java数据类型的方法。...
1、在读写文件时必须的 2、File类 3、流 4、读写文件 运用FileInputStream和FileOutputStream类读写文本文件 运用BufferedReader和BufferedWriter类读写文本...运用DataInputStream和DataOutputStream类读写二进制 文件
DataInputStream和DataOutputStream类可以读取和写入Java数据类型,比如int、float、double等基本类型。在读取二进制文件时,需要先确定文件的大小,然后创建一个相应大小的byte数组来接收数据。DataInputStream的...
(1) 理解流式输入输出的基本原理。...(2) 掌握DataInputStream和DataOutputStream类的使用方法。 (3) 掌握File、FileInputStream、FileOutputStream类的使用方法。 (4) 掌握RandomAccessFile类的使用方法。
本文将深入探讨DataInputStream和DataOutputStream这两个类以及它们所关联的DataInput和DataOutput接口。 DataInputStream和DataOutputStream是Java.io包中的两个核心类,它们都是FilterInputStream和...
* DataInputStream和DataOutputStream类用于读取和写入数据。 * 通过使用TCP Socket,我们可以实现客户机和服务器端之间的可靠通信。 应用场景 Java程序socket编程有很多应用场景,如: * 实现客户机和服务器端...
在Java中,可以使用DataInputStream和DataOutputStream类来读写二进制数据。客户端将图片文件转换为字节数组,通过Socket发送到服务器,服务器接收到后再转发给指定的接收者。同时,为了保证图片质量,需要考虑压缩...
Java读取和写入二进制大文件的方法,应该说是一个基于二进制的大文件块,演示了如何自定义缓存区,并使用不具有缓冲功能的DataInputStream 和DataOutputStream 类来读写二进制的大文件块数据,运行效果请参见如下...
- **DataInputStream和DataOutputStream类**:提供了对基本数据类型的读写支持,使得数据传输更加方便和安全。 此外,Java还提供了**多线程机制**来处理并发连接,这对于提高服务器的响应能力和处理能力至关重要。...
J2ME中的DataInputStream和DataOutputStream类可以帮助读写这些数据流。 4. **线程管理**: 在J2ME中,由于资源限制,线程管理尤为重要。视频播放可能在一个后台线程中进行,以免阻塞UI主线程,保证用户体验。 5. *...