0

所以,我们得到了一个做猜谜游戏的任务。程序必须生成一个数字,用户必须猜测。用户猜对后,程序会显示“高分”(用户必须猜多少次才能猜对)。

然后我们应该把这个高分保存在一个文本文件中,这样它就保存在计算机上,如果你重新启动计算机,它就不会丢失。我正在努力解决的是程序应该如何读取我保存的文件。

这是我的“写代码”:

try {
    FileOutputStream write = new FileOutputStream 
    DataOutputStream out = new DataOutputStream(write);
    out.writeBytes(""+highscore);
    write.close();}
catch(IOException ioException ){
    System.err.println( "Could not write file" );
    return;}

哪个工作正常,但我不知道如何再次阅读它。我的“阅读代码”:(我只是猜测,我不知道这是否可行)

try{
    FileInputStream read = new FileInputStream
    DataInputStream in = new DataInputStream(read);
    in.readBytes(""+highscore);
    JOptionPane.showMessageDialog(null, "Your highscore is" + highscore);
catch(IOException ioException ){
    System.err.println( "Could not read file" );
    return;}

现在,我不知道in.readBytes(""+highscore);命令是否正确。我只是猜到了(我认为如果out.writeBytes(""+highscore);有效,那么阅读肯定也必须有效)

如果 readBytes 是正确的命令,那么我会收到此错误:

The method readBytes(String) is undefined for the type DataInputStream

我应该做些什么?

一些信息:高分是和int。

4

1 回答 1

1

例如,如果highscore是一个int,你会想要将一个写入int文件。你可以这样做

DataOutputStream out = new DataOutputStream(write);
out.writeInt(highscore);

并阅读它

DataInputStream in = new DataInputStream(read);
int highscore = in.readInt();

该类DataInputStream没有readBytes(). 这就是您的程序无法编译的原因。

类的全部意义DataIOStream在于阅读和写作

以与机器无关的方式来自底层 [...] 流的原始 Java 数据类型。

所以使用对应数据类型的方法highscore

于 2013-09-04T15:22:42.220 回答