2010-12-05 7 views
0

에있는 파일에 int를 저장 내가 내려서이 코드는 dev.android.com ...안드로이드

@Override 
    protected void onStop(){ 
     FileOutputStream fos = openFileOutput(filename, MODE_PRIVATE); 
     fos.write(levelComplete); 
     fos.close(); 
    } 

아마 거기 아니라면이 그렇지 않으면 파일을 작성해야합니다, 그것은으로 작성해야해야 그것. 그러나 FileNotFoundException이 발생합니다. 도움?

편집 : 입력 : 매니페스트 파일에 권한을 넣어하는 것을 잊지 마세요, 또한

String FILENAME = "hello_file"; 
String string = "hello world!"; 

FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); 
fos.write(string.getBytes()); 
fos.close(); 

:

@Override 
protected void onStart(){ 
    FileInputStream fis = openFileInput(filename); 
    levelComplete = fis.read(); 
    fis.close(); 
} 
+1

여기에 openFileInput 목록을 게시하십시오. –

+0

위에 추가하십시오. –

답변

0

다음 코드를 사용해보십시오. 다음과 같음 :

<uses-permission 
     android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

+1

파일이 EXTERNAL_STORAGE (예 : SD 카드)에 기록 된 경우에만 'WRITE_EXTERNAL_STORAGE'이 (가) 필요하다고 생각했습니다. –

+0

예, WRITE_EXTERNAL_STORAGE는 SDCard와 같은 외부 저장소에 파일을 쓰는 경우에만 필요합니다. –

+0

그건 아, 내가 위에있는 것과 거의 동일합니까? –

0

그것은 당신의 문제가이되지 않을 수도 있습니다,하지만 난 그냥 확실하게 그것을 언급 할 :

당신이 openFileOutput (String name, int mode) 기능에 대한 문서를 보면이의 name 매개 변수에 대한 설명은 다음을 말한다 :

이름 : 열 수있는 파일의 이름; 경로 분리자를 포함 할 수 없습니다. 특히

공지 사항 경로 구분를 포함 할 수 없습니다 에 대한 부분. 많은 사람들이이 경로를 놓치고 완전한 경로 (예 : /sdcard/myapp/myfile.txt)를 지정하려고 시도하지만 허용되지 않습니다. 대신 파일 이름 만 지정해야합니다 (예 : myfile.txt).

그 이유는 openFileOutput 응용 프로그램에 개인 인 파일로 스트림을 여는 (그리고 문서도 존재하지 않는 경우 파일을 만들 것을 말한다). 이 때문에 응용 프로그램 내에서 개인 영역 내에 상주하므로 경로를 지정하는 것은 의미가 없습니다.

+0

아니요, 내 경로는 파일 이름 일뿐입니다. :) –

+0

@Joel Auterson : 좋아, 우리는 그 중 하나를 지배했다. 코드에 다른 명백한 오류가 표시되지 않으므로 파일을 열려고 할 때 발생하는 전체 오류 스택 추적을 포함하도록 질문을 업데이트하면 유용 할 수 있습니다. – Nailuj

+0

Eclipse에서 처리되지 않은 예외가 있음을 알립니다. 실제로 파일을 미리 만들어야합니까? –