나는 말 그대로 올바른 대답을 찾으려고 stackoverflow 통해 보았다 ... 어쩌면 내가 뭔가 잘못하고있다. 내가 처음으로 더 정교한 앱을 만들고 있는데, 이는 아이들을위한 퀴즈 앱입니다. 점수를 highscorestable.txt에 저장하고 나중에 열거 나 업데이트하고 읽는 등의 작업을 원합니다. 다음 게임 등으로 응용 프로그램을 다시 사용하도록 파일을 닫은 후에 파일이 존재해야합니다. http://developer.android.com/guide/topics/data/data-storage.html을 사용하고있었습니다. 파일을 전화 메모리에 저장하고 싶습니다. 나는 다음과 같은 코드를 가지고 :안드로이드에 파일을 (영원히) 저장하고 나중에 데이터를 복원하는 방법은 무엇입니까?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_high_scores);
Intent intent = getIntent();
String userData;
scores =(EditText)findViewById(R.id.scores);
if(intent.getStringExtra(EndScreen.EXTRA_MESSAGE)!=null)
{
userData = intent.getStringExtra(EndScreen.EXTRA_MESSAGE);
}
else
{
userData="";
}
String temp = "";//to widzi przy zaladowaniu
String output = "";
String g="";
//FIRST READING not necessary?
try{
FileInputStream fin = openFileInput("highscorestable.txt");
int c;
while((c = fin.read()) != -1){
temp = temp + Character.toString((char)c);
}
fin.close();
}
catch (Exception e) {
// e.printStackTrace();
}
if(temp.equals(null))
{
temp = "";
}
//output = userData; //+ temp;
FileOutputStream fos;//WRITING
try {
fos = openFileOutput("highscorestable.txt", Context.MODE_PRIVATE);
fos.write(userData.getBytes());
fos.close();
} catch (IOException e1) {
e1.printStackTrace();
}
//READING2
try{
FileInputStream fin = openFileInput("highscorestable.txt");
int c;
while((c = fin.read()) != -1){
g = g + Character.toString((char)c);
}
fin.close();
output= output+g;
scores.setText(output);
}
catch (Exception e) {
}
자체가 작동하는 의도, 실제로 모든, 그러나 fileitself은 지속되지 않는 작품. 내 말은, 새로운 게임을 시작할 때 이전 데이터가 복원되지 않는다는 것입니다. 그것을 고치는 방법?
당신이 실행하여 가정을 확인할 수 있습니다 작성되지 않은 파일에을 추가 시도 에뮬레이터의 응용 프로그램을 실행 한 다음 DDMS의 파일 브라우저를 사용하여 저장소를 탐색 할 수 있습니까? 파일이 생성되고 두 번째로 앱을 시작할 때 파일이 있습니까? 그렇다면 아마도 데이터를 복원하는 논리에 실수를 범한 것입니다. – Egor
OutputStream out = null; { out = 새 BufferedOutputStream (새 FileOutputStream ("highscorestable.txt")); } catch (예외 e) { } 기존 파일을 추가 할 수 있기 때문에 BufferedOutputStream을 시도해 보셨습니까? thinkn fileoutputstream은 데이터를 추가하지 않기 때문에 이전 데이터는 존재하지 않습니다. –
답변 해 주셔서 감사합니다. 나는 그것이 여기에서 끝나는 것처럼 outputstream으로 시도 할 것이다 : http://stackoverflow.com/questions/5818406/append-data-in-existing-file-in-android-and-read-it. -> CHECKED, 작동하지 않습니다. 자 와드 제브, 정확히 무슨 뜻이야? @ 에고 - DDMS - 나는 그것을 봐야 해. – user3795517