Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 继续获取StreamCorruptedException,即使代码很好 FileInputStream fis=新的FileInputStream(数据文件); ObjectInputStream getItem=新ObjectInputStream(fis); 播放器[0]=(高分)getItem.readObject(); for(int i=0;i_Java_Eclipse - Fatal编程技术网

Java 继续获取StreamCorruptedException,即使代码很好 FileInputStream fis=新的FileInputStream(数据文件); ObjectInputStream getItem=新ObjectInputStream(fis); 播放器[0]=(高分)getItem.readObject(); for(int i=0;i

Java 继续获取StreamCorruptedException,即使代码很好 FileInputStream fis=新的FileInputStream(数据文件); ObjectInputStream getItem=新ObjectInputStream(fis); 播放器[0]=(高分)getItem.readObject(); for(int i=0;i,java,eclipse,Java,Eclipse,如上所示,player[0]行给出了错误。即使我在循环中有这个,它也会给我同样的错误。请记住,数据文件上只有一行数据,这就是为什么我只想让控制台读取第一行数据 编辑:这是代码的编写部分,正如大家所希望的: FileInputStream fis = new FileInputStream(dataFile); ObjectInputStream getItem = new ObjectInputStream(fis); player[0] = (HighScore) getIte

如上所示,player[0]行给出了错误。即使我在循环中有这个,它也会给我同样的错误。请记住,数据文件上只有一行数据,这就是为什么我只想让控制台读取第一行数据 编辑:这是代码的编写部分,正如大家所希望的:

FileInputStream fis = new FileInputStream(dataFile);
    ObjectInputStream getItem = new ObjectInputStream(fis);
    player[0] = (HighScore) getItem.readObject();

    for(int i = 0; i< player.length; i++)
    {
        highscoreinfo.setText("<html>" + highscoreinfo.getText() + "<br>" + player[i]);
        System.out.println(player[i]);

    }

    getItem.close();
FileOutputStream fos=新的FileOutputStream(数据文件,true);
ObjectOutputStream saveItem=新的ObjectOutputStream(fos);
player[intplayernum]=新的高分(用户名、TimePlayerNum、totalwords、timecount.getText());
saveItem.writeObject(播放器[intplayernum].toString());

对于(int i=0;iI假设问题在于代码的写入部分。您是如何将数据写入文件的?您是否在
HighScore
类的读取和写入之间更改了任何内容?每次按下按钮时,都会写入已存在的数据文件。文件本身在一行中显示我的所有数据,即fine、 但它似乎无法读取,而(很可能)这不是您当前的问题-您正在编写一个
toString()
(这是一个
字符串,可能是为人类可读性定制的)并尝试读取
Highscore
。如果你做得那么远,我猜这会引发ClassCastException。你每次写入时都会附加到文件,但只读取第一个条目,你是否尝试删除文件以重新开始,而不是重复尝试读取写入文件的第一个内容?
FileOutputStream fos = new FileOutputStream(dataFile, true);
    ObjectOutputStream saveItem = new ObjectOutputStream(fos);  
    player[intplayernum] = new HighScore(userName, timePlayed, totalwords, timecount.getText());
    saveItem.writeObject(player[intplayernum].toString());

    for(int i = 0; i<= intplayernum; i++)
    {
        System.out.println(player[i]);
    }

    System.out.println("Player score written to file.");
    saveItem.close();
     GameFrame.setVisible(false);
     GameFrame.dispose();
     askNameApp();
     intplayernum++;