BUPT JAVA: 二进制文件读取

二进制文件读取

题目描述:

已知一个二进制文件, 文件名为 dict.dic. 它是由下边的代码生成.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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 类型的不是保留一位小数, 直接输出就可以了.

输入样例:

1
1

输出样例:

1
2
3
4
100
false
72.5
helloworld

Java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 2023/04/24
// 二进制文件读取

import java.io.*;
import java.util.Scanner;

public class Main {
public static void main(String[] args) throws IOException {
var in = new Scanner(System.in);
var n = in.nextInt();
var file = new DataInputStream(
new BufferedInputStream(new FileInputStream("dict.dic")));

int a = 0;
boolean b = false;
double c = 0;
String d = null;
for (int i = 1; i <= n; i++) {
a = file.readInt();
b = file.readBoolean();
c = file.readDouble();
d = file.readUTF();
}
System.out.print(a + "\n" + b + "\n" + c + "\n" + d);
}
}
2023-04-24 
IP属地: 北京

BUPT JAVA: 二进制文件读取
https://dengwuli.github.io/2023/04/24/BUPT_JAVA/二进制文件读取 /
作者
DengWuLi
发布于
2023年4月24日
更新于
2023年7月14日
许可协议