2016-12-13 8 views
-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" /> 

データを読み取るとアプリがクラッシュしません。ただし、データを書き込もうとするとクラッシュします。ここで狂っている。ご協力ありがとうございました。

+0

を行く<使用許可アンドロイド:名=「android.permission.READ_EXTERNAL_STORAGE」/> <使用許可アンドロイド:名=「android.permission.WRITE_EXTERNAL_STORAGE」/> –

答えて

関連する問題