나는 작은 게임을 순간 (Android-App)에서 개발 중이고 하이 스코어를 .txt 파일에 저장하려고합니다. 목록에 저장하면 시작될 때마다 목록이 비어 있기 때문입니다. App new. 일반적으로 java- 프로그램의 경우 FileWriter가 program-folder에 .txt를 만들기 때문에 문제는 아닙니다. Android에서 그렇게한다면 오류가 발생하여 파일을 만들 수 없습니다.FileWriter : 대상 폴더를 설정하는 방법?
그럼 FileWriter에게 파일을 저장할 위치를 알려주고 어디에 저장해야합니까? FileWriter는 기존 파일을 삭제하고 FileOutput의 "MODE_PRIVATE"모드와 같은 파일 이름이 이미있는 경우 동일한 이름의 새 파일을 만듭니다.
FileOutput/InputStream을 사용하여 내부 저장소에 파일을 저장할 수 있지만 FileOutput은 .getBytes() - 메서드에 아무런 문제가없는 바이트를 허용하지만 방법을 찾을 수 없습니다. 읽으려는 바이트를 다시 String으로 변환합니다.
는 (나는 영어가 모국어가 아닌 어떠한 문법 실수에 대해 사과)
UPDATE : 지금까지 도움을 첫 번째 큰 감사에서
. 하지만 아직 구체적인 도움이 필요합니다. 그게 내가 원하는 걸 : 내 게임이 끝날 때마다, 나는 포인트 활동으로 전환하고 그에게 도달 한 점수를 준다. 포인트 - 액티비티에서 포인트를리스트에 넣고이리스트를 내부 스토리지의 파일에 기록합니다. Highscores-Activity에서이 파일을 읽고 File의 내용을 List에 저장하여 ListView로 화면에 인쇄하려고합니다. 이 파일 작성을위한 코드입니다 : 나는 이것에 대해 유래에 대한 질문을 많이 읽을 수 있지만 나는 여전히 파일 새 문자열 또는 INT의 모든 줄을 넣어이 파일을 읽는 방법을 잘 모릅니다
ArrayList<Integer> highscoreListe = new ArrayList<Integer>();
punkte = getIntent().getExtras().getInt("Punkte");
public void writeToExternalStoragePublic() throws IOException
{
String filename = "highscores.txt";
FileOutputStream fos= null;
OutputStreamWriter osw = null;
fos= openFileOutput(filename,Context.MODE_PRIVATE);
osw = new OutputStreamWriter(fos);
for(Integer score : highscoreListe)
{
osw.write(score);
osw.append(System.getProperty("line.separator"));
}
osw.close();
fos.close();
}
목록에. 내가하고 싶은 것을 당신이 이해하기를 바랍니다.
좋아, 나는이 모든 일을 생각하지 못했다고 생각한다. SharedMedia는 내가 필요로하는 것처럼 보이지 않습니다. 왜냐하면 당신은 정수형 목록을 기본 형식과 문자열 집합으로 넣을 수 없기 때문입니다. FileOutputStream 그냥 바로 바이트를 허용합니까? 그래서 나는 바이트로 채워진 파일을 가지고있다. 다른 활동에서 File을 읽고 정수 목록에 내용을 저장하려는 경우이 바이트를 다시 문자열로 변환합니까? – Marcel
아무도 저에게 말할 수 있습니까? – Marcel
당신이 뭘보고 있는지 확실하지 않습니까? while에서 데이터를 읽을 수 있고 그것을 문자열로 변환 할 수 있고 그것을 int로 구문 분석 할 수 있습니다. http://stackoverflow.com/questions/2902689/how-can-i-read-a-text-file-from-the-sd -card-in-android –