私は完全な初心者なので、助けを借りてできる「コンテキスト」ビットを理解していないことで非難されることを知っています。
内部メモリの読み取り/書き込み用の基本クラスを作成しましたが、機能していません。これはコンテキストの問題だと思います。クラスは「アクティビティ」を継承していますが、コンテキストを設定する方法がわかりません。
クラス コードは以下のとおりで、次の基本的なコードを介して呼び出されます。
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;
}
}