Java数据流学习
数据流
与机器无关的操作Java基本数据类型。网络传输会用。
-
DataInputStream
数据输入流允许应用程序以与机器无关的方式从底层输入流中读取Java基本数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。DataInputStream对于多线程访问不一定是安全的。线程安全是可选的,他由此类方法是使用者负责。 -
DataOutputStream
数据输出流允许应用程序以适当的方式将基本Java数据类型写入输出流中。然后,应用程序可以使用数据输入流将数据读入。
代码示例
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.junit.Test;
public class DataStreamDemo {
// 向文件中写入数据
@Test
public void writeData() {
File file = new File("F:/test.txt");
try {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));
DataOutputStream dos = new DataOutputStream(bos);
dos.writeInt(10);// 写入4个字节
dos.writeByte(5);// 写入一个字节
dos.writeUTF("爱");
dos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}// writeData
// 从文件中读取数据
@Test
public void readData() {
File file = new File("F:/test.txt");
try {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
DataInputStream dis = new DataInputStream(bis);
// 读的时候应按照写入的顺序
int num = dis.readInt();
byte b = dis.readByte();
String str = dis.readUTF();
System.out.println(num + "," + b + "," + str);
dis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}// readData
}