好的,所以在我的项目中,我试图通过写入名为data的文件夹来序列化国际象棋游戏。我在eclipse中这样做了,它能够工作。然而,当我把它带入Android工作室时,我得到了试图获得空数组长度的错误。这是我的方法:
public static void writeData() throws IOException {
System.out.println("WRiting data");
File folder = new File("data" + File.separator);
folder.mkdir();
String[] directories = folder.list();
for (String name : directories) { //error here
File ff = new File(folder + File.separator + name);
if (ff.isDirectory()) {
deleteDirectory(ff);
}
}
//add all user data
for (game u : info.games) {
File f = new File("data" + File.separator + u.name); //make a file with user name
f.mkdir(); //make the file a directory
ObjectOutputStream oos = new ObjectOutputStream(
new FileOutputStream(f + File.separator + "game-state"));
//create stream with file name at the end
oos.writeObject(u);
//write objects
oos.close();
}
}
此外,我查看了以前的问题并更改了我的清单文件,以允许写入和读取数据的权限。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我读取数据时应用程序不会崩溃。但是,当我尝试写入数据时它会崩溃。在这里疯狂。谢谢您的帮助。
答案 0 :(得分:0)
这可能是由于marshmellow权限请求,您必须在运行时调用权限请求。 通过链接 https://developer.android.com/training/permissions/requesting.html