当前位置: 首页 > 知识库问答 >
问题:

尝试保存游戏时FileNotFoundException

鞠嘉誉
2023-03-14

当我试图保存我的Android游戏(通过Android模拟器在我的Windows笔记本电脑上播放),我得到一个FileNotFoundExc0019。我花了几个小时尝试不同的东西,但仍然感到困惑,因为代码完全适用于我以前的版本,而不是Android系统。

FileOutputStream saveStream;
ObjectOutputStream savePlayerObject = null;
String destinationFile = player1.getName() + ".txt";

try
{
   saveStream = new FileOutputStream(destinationFile);    
   savePlayerObject = new ObjectOutputStream(saveStream);   
   savePlayerObject.writeObject(player1);
}

catch(FileNotFoundException ex)
{
   Toast toast = Toast.makeText(getApplicationContext(), "Save Failed", Toast.LENGTH_LONG);
   toast.show();
}


catch(IOException ex)
{
   Toast toast = Toast.makeText(getApplicationContext(), "Save Failed", Toast.LENGTH_LONG);
   toast.show();
}


finally
{
   try
   {
      if(savePlayerObject !=null)
      {
         savePlayerObject.flush();    
         savePlayerObject.close();   
         Toast toast = Toast.makeText(getApplicationContext(), "Thank-You For Playing, See You Soon", Toast.LENGTH_LONG);
         toast.show();   
         System.exit(0);   
      }
   }

   catch(IOException ex)
   {
      Toast toast = Toast.makeText(getApplicationContext(), "Save Failed", Toast.LENGTH_LONG);
      toast.show();
   }
}

共有2个答案

段干飞翔
2023-03-14

可能您没有创建新文件所需的权限。

邓欣德
2023-03-14

这意味着程序无法在指定位置创建文件。

String destinationFile = player1.getName() + ".txt";

文件将在当前工作目录中创建。这通常不是你想要的。您需要考虑文件到底应该去哪里,然后指定绝对路径。

 类似资料:
  • 问题内容: 我使用pygame在python中做了一个非常简单的游戏。分数基于玩家所达到的等级。我将级别作为一个名为的变量。我想在游戏开始或结束时显示最高级别。 我会更乐于显示一个以上的分数,但是我看到的所有其他线程都太复杂了,以至于我无法理解,因此请保持简单:我是一个初学者,只需要一个分数。 问题答案: 我建议您搁置。例如: 下次打开程序时,请使用: 它将从磁盘读取。如果需要,可以使用此技术保存

  • 这似乎是一个非常基本的问题,但我有一个模型(用户),我想存储一个字符串的ArrayList(它们是其他用户的ID)。我这样声明列表: 控制器方法: 和一个非常简单的观点:

  • 问题内容: 这很简单,我要做的就是为游戏保存高分(整数)。我假设最简单的方法是将其存储在文本文件中,但是我真的不知道如何进行此操作。 问题答案: 如果您只需要存储一个整数,则SharedPreferences最适合您使用: 获得首选项: 当然,用高分值的键和您的偏好的键替换(这些可以是任意的。将它们设置为可识别且独特的东西是很好的)。

  • 问题内容: 启动Java应用程序时,尝试保存图像时出现异常。但是,在Eclipse中,一切正常。该应用程序是使用fatjar构建的,并且还选择了必需的库(jar_imageio.jar和ij.jar)进行导出。 我尝试使用ImageIO和ImageJ: a。)ImageIO: b。)ImageJ: 问题答案: 正如@Victor说的,我认为您应该看看 我昨天才遇到这个问题,这很棘手。有类似的问题在

  • 当我尝试构建Unity项目(Android)时,它说: 命令调用失败:无法更新SDK。请手动运行SDK管理器以确保您安装了最新的工具集和所需的平台。 以下是我试图修复它的事情: > 将添加到路径中。然后从cmd中,我尝试了,然后键入,但它给了我: 错误:无法找到或加载主类项目\Android原因:java.lang.ClassNotFoundExc的:项目\Android 从Android Stu

  • 可能入行真不太简单吧😭😭😭感觉是凉的