package mjn.io;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* DataInputStream/DataOutputStream示例:
* 将100个随机数(1-100之间)写入文件,
* 然后从文件中读出并显示
* @author MJN
* @date 2011-10-04
*/
public class DataStreamDemo {
public static void main(String[] args) {
//write data to file
DataOutputStream out = null;
int count = 100;
try {
out = new DataOutputStream(
new FileOutputStream("data.txt"));
for (int i = 0; i < count; i++) {
out.writeInt((int) (Math.random() * 100 + 1));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (out != null) {
out.flush();
out.close();
}
} catch (IOException e) {}
}
//read data from file
DataInputStream in = null;
int v;
try {
in = new DataInputStream(
new FileInputStream("data.txt"));
while (true) {
v = in.readInt();
System.out.println(v);
}
} catch (EOFException e) {
System.out.println("文件读取完毕");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
} finally {
try {
if (out != null) {
out.flush();
out.close();
}
} catch (IOException e) {}
}
}
}
用DataOutputStream的readInt方法读取数据的时候, 若读取四个字节之前到达末尾: 抛出EOFException异常
References:
1. NNU姜老师课堂源码'java_course'