2012-01-05 57 views
1

我真的很新的android开发,我的第一个项目是一个简单的游戏,至少有一个显示和一个逻辑部分。我想添加一个保存功能到游戏中,但是我在实现时遇到了问题。Android和ObjectOutputStream资源文件

我愿做这种方式,用一个ObjectOutputStream(只是重要的部分是包括)

String filename = "res/raw/testfile.txt"; 
try 
{ 
    FileOutputStream fileout = new FileOutputStream(filename); 
    ObjectOutputStream out = new ObjectOutputStream(fileout); 
    out.writeObject(...logic objects...); 
} 
catch (Exception ex) 
{ 
    //show the error message 
} 

但我总是得到一个错误消息说至极,说:“没有这样的文件。” 。即使我在原始目录中创建了“testfile.txt”,它也会显示相同的错误。

请帮帮我,我做错了什么?

+0

“没有这样的文件...”,这可能意味着路径不正确。 – 2012-01-05 18:30:21

+0

[This](http://stackoverflow.com/questions/1239026/how-to-create-a-file-in-android)可以帮助你。 :-) – micha 2012-01-05 18:30:51

回答

2

用文件名创建一个File对象,然后检查文件是否存在。如果没有,则创建该文件。如果是这样,您可以覆盖或提示用户是否要覆盖它。然后将File对象传递给FileOutputStream而不是文件名。类似这样的:

String filename = "res/raw/testfile.txt"; 
try 
{ 
    File file = new File(filename); 
    if (!file.exists()) { 
     if (!file.createNewFile()) { 
      throw new IOException("Unable to create file"); 
     } 
    // else { //prompt user to confirm overwrite } 

    FileOutputStream fileout = new FileOutputStream(file); 
    ObjectOutputStream out = new ObjectOutputStream(fileout); 
    out.writeObject(...logic objects...); 
} 
catch (Exception ex) 
{ 
    //show the error message 
} 

还要确保关闭输出流以防止任何资源泄漏。

享受!