【发布时间】:2021-08-12 04:56:23
【问题描述】:
我正在学习如何执行 Java 二进制输入/输出。所以在开始我的全部任务之前,我只是想确保我知道如何执行基本的 I/O。我可以进行文本 I/O,但我一直遇到二进制 I/O 问题。我的代码只是将一些内容写入二进制文件。然后更多的代码只是读取二进制文件并打印它的数据。
这是将数据写入二进制文件的代码。不必担心写入文件的确切内容。我只是随意放东西。
import java.io.*;
public class Write
{
public static void main(String[] args)
{
DataOutputStream writer = null;
try
{
writer = new DataOutputStream(
new BufferedOutputStream(
new FileOutputStream("writer.dat")));
writer.writeInt(8);
writer.writeChars("Monkey ");
writer.writeChars("Bottled Water");
writer.writeChars("Truth ");
writer.writeDouble(29.99);
writer.close();
}
catch (Exception e)
{
System.out.println("Error");
}
}
}
这是从二进制文件中读取数据的代码。
import java.io.*;
public class Read
{
public static void main(String[] args)
{
DataInputStream reader = null;
int integ = 0;
String [] names = new String[3];
double win = 0;
try
{
reader = new DataInputStream(
new BufferedInputStream(
new FileInputStream("writer.dat")));
integ = reader.readInt();
for ( int i = 0 ; i < 3 ; i++ )
{
for ( int j = 0 ; j < 13 ; j++ )
{
names[i] += reader.readChar();
}
}
win = reader.readDouble();
reader.close();
}
catch (Exception e)
{
System.out.println("Error");
}
System.out.println(integ);
for ( int e = 0 ; e < 3 ; e++)
{
System.out.println(names[e]);
}
System.out.println(win);
}
}
有人可以解释为什么它在单词前面显示 null 吗?
【问题讨论】: