题目描述 已知一个二进制文件,文件名为dict.dic。它是由下边的代码生成。 int a ; boolean b = true ; double c , f ; String d ; DataOutputStream out = new DataOutputStream( new FileOutputStream("dict.dic")); Scanner cin = new Scanner(System.in); for (int i = 0 ; i < 5 ; i ++ ) { a = cin.nextInt() ; f = Math.random() ; if ( f > 0.5 ) b = true ; else b = false ; c = cin.nextDouble() ; d = cin.next() ; out.writeInt(a); out.writeBoolean(b); out.writeDouble(c); out.writeUTF(d); } out.close(); // Remember this! cin.close(); } 你的任务是写一段程序,将这些内容读出来。 输入 为一个整数,只可能是1,2,3,4,5之一。 输出 将dict.dic中的相关内容输出到屏幕上,如果输入是1,则输出那段代码第一次循环写入的内容,如果输入是2,则输出那段代码第二次循环写入的内容,依此类推。 形式如样例。double类型的不是保留一位小数,直接输出就可以了。
时间: 2024-01-14 21:02:50 浏览: 366
以下是实现题目要求的Java程序:
```java
import java.io.*;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
int a;
boolean b;
double c, f;
String d;
DataInputStream in = new DataInputStream(new FileInputStream("dict.dic"));
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
for (int i = 0; i < n; i++) {
a = in.readInt();
b = in.readBoolean();
c = in.readDouble();
d = in.readUTF();
System.out.println(a + " " + b + " " + c + " " + d);
}
in.close();
cin.close();
}
}
```
程序首先读入一个整数n,表示需要输出dict.dic中的第几个记录。然后使用DataInputStream从dict.dic中读取记录,依次输出到屏幕上。
需要注意的是,在读取double类型数据时,需要使用readDouble()方法,而不是nextDouble()方法。同时,输出double类型数据时,不需要保留一位小数,直接输出即可。
希望这个程序对你有所帮助!
阅读全文