2012-06-14 3 views
0

나는 작은 게임을 순간 (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(); 
} 

목록에. 내가하고 싶은 것을 당신이 이해하기를 바랍니다.

답변

0

plese이 링크 REFE 파일

http://developer.android.com/guide/topics/data/data-storage.html#pref

Writing to text file in "APPEND mode" in emulator-mode,

does the FileWriter deletes an existing file and creates a new file with the same name if the filename already exists 

예를 wtire 할 수 있지만, 그것은 당신이 내부에서 파일 개인 기록을 만들고 싶어

public FileWriter(File file, 
        boolean append) 
append - if true, then bytes will be written to the end of the file rather than the beginning 

고려 저장.

+0

좋아, 나는이 모든 일을 생각하지 못했다고 생각한다. SharedMedia는 내가 필요로하는 것처럼 보이지 않습니다. 왜냐하면 당신은 정수형 목록을 기본 형식과 문자열 집합으로 넣을 수 없기 때문입니다. FileOutputStream 그냥 바로 바이트를 허용합니까? 그래서 나는 바이트로 채워진 파일을 가지고있다. 다른 활동에서 File을 읽고 정수 목록에 내용을 저장하려는 경우이 바이트를 다시 문자열로 변환합니까? – Marcel

+0

아무도 저에게 말할 수 있습니까? – Marcel

+0

당신이 뭘보고 있는지 확실하지 않습니까? while에서 데이터를 읽을 수 있고 그것을 문자열로 변환 할 수 있고 그것을 int로 구문 분석 할 수 있습니다. http://stackoverflow.com/questions/2902689/how-can-i-read-a-text-file-from-the-sd -card-in-android –

관련 문제