0

私は完全な初心者なので、助けを借りてできる「コンテキスト」ビットを理解していないことで非難されることを知っています。

内部メモリの読み取り/書き込み用の基本クラスを作成しましたが、機能していません。これはコンテキストの問題だと思います。クラスは「アクティビティ」を継承していますが、コンテキストを設定する方法がわかりません。

クラス コードは以下のとおりで、次の基本的なコードを介して呼び出されます。

public class GameLayer extends CCLayer {
....
  ReadWriteData myDataFile = new ReadWriteData();
  myDataFile.writeFile("Test data");
  String fileText = myDataFile.readFile();
....
}

クラスは次のとおりです。

public class ReadWriteData extends Activity {

  // Old line of code from original post:  public Context c = getBaseContext();
  // New line:
  public Context c = CCDirector.sharedDirector().getActivity();

  String FILENAME = "Data.dat"; 

  void writeFile(String writeText){
    FileOutputStream outputStream = null;
    try {
        outputStream = c.openFileOutput(FILENAME, Context.MODE_PRIVATE);
        outputStream.write(writeText.getBytes());
        outputStream.close();
        System.out.println("Write sucessful");
    } catch (Exception e) {
        e.printStackTrace();
    }
  }

  public String readFile(){
    String returnString = "";
    try{
        InputStream inputStreamFile = c.openFileInput(FILENAME);
        if (inputStreamFile != null){
            InputStreamReader inputStreamRdr = new InputStreamReader(inputStreamFile);
            BufferedReader bufferedReader = new         BufferedReader(inputStreamRdr);
            String fileString = "";
            StringBuilder stringBldr = new StringBuilder();
            while ((fileString = bufferedReader.readLine()) != null) {
                stringBldr.append(fileString);
            }

            inputStreamFile.close();
            returnString = stringBldr.toString();
        }           
    } catch (Exception e) {
          e.printStackTrace();
    } 
    return returnString;
  }
}
4

0 に答える 0