1

我试过这个:

public class People implements Serializable  {

String name;

public People(String name)
{
    this.name = name;
}

public String getName()
{
    return name;
}

public void saveAsObject(People p) throws FileNotFoundException, IOException
{
    try 
    {
        ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(new File("test","test.dat") ));
        os.writeObject(p);
        os.close();
        System.out.println("Sucess");
    }

    catch(IOException e)
    {
        System.out.println(e);
    }

}

}

我手动创建了该文件夹。它抛出这个错误:“java.io.FileNotFoundException:/test/test.txt:打开失败:ENOENT”(没有这样的文件或目录)

当我尝试

 new FileOutputStream("text.dat")

它抛出 java.io.FileNotFoundException: EROFS (只读文件系统)

这是我的主要课程:

 public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
            People p = new People("Ray");
    try {
        p.saveAsObject(p);
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}
4

2 回答 2

1

new File("test","test.dat")不是在 Android 上获取文件路径的有效方法。

尝试这个:

new File(Environment.getExternalStorageDirectory(), "/data.dat");
于 2013-02-25T14:39:10.190 回答
0

您的应用程序的默认当前工作目录是“/”,您将无权写入。

于 2013-02-25T15:59:28.347 回答