import java.io.*;
public class IntFile
{
private String filename;
public IntFile(String filename)
{
this.filename = filename;
}
public void writeToFile() throws IOException //将Fibonacci序列值写入指定文件
{
FileOutputStream fout = new FileOutputStream(this.filename);
DataOutputStream dout = new DataOutputStream(fout);
short i=0,j=1;
do
{
dout.writeInt(i); //向输出流写入一个整数
dout.writeInt(j);
i = (short)(i+j);
j = (short)(i+j);
} while (i>0);
dout.close(); //先关闭数据流
fout.close(); //再关闭文件流
}
public void readFromFile() throws IOException //从指定文件中读取整数
{
FileInputStream fin = new FileInputStream(this.filename);
DataInputStream din = new DataInputStream(fin);
System.out.println(this.filename+":");
while (true) //输入流未结束时
try
{
int i = din.readInt(); //从输入流中读取一个整数
System.out.print(i+" ");
}
catch (EOFException e)
{
break;
}
din.close(); //先关闭数据流
fin.close(); //再关闭文件流
}
public static void main(String args[]) throws IOException
{
IntFile afile = new IntFile("FibIntFile.dat");
afile.writeToFile();
afile.readFromFile();
}
}
/*
程序运行结果如下:
FibIntFile.dat:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657
程序设计说明如下:
1、readInt()方法到达输入流末尾时,抛出EOFException异常。
*/