-1
私のプロジェクトでは、dataという名前のフォルダに書き込んでチェスゲームをシリアル化しようとしています。私は日食でこれを行い、それは働くことができました。しかし、私がアンドロイドスタジオに持ってきたとき、ヌル配列の長さを取得しようとしたときにエラーが出ました。ここに私の方法は次のとおりです。Android Studiosシリアル化。空の配列の長さを取得しようとしました
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" />
データを読み取るとアプリがクラッシュしません。ただし、データを書き込もうとするとクラッシュします。ここで狂っている。ご協力ありがとうございました。
を行く<使用許可アンドロイド:名=「android.permission.READ_EXTERNAL_STORAGE」/> <使用許可アンドロイド:名=「android.permission.WRITE_EXTERNAL_STORAGE」/> –