2012-02-23 5 views
2

외부 저장소의 텍스트 파일에 int 값을 저장하려고합니다. saveAudio() 함수를 사용하려고하면 FileNotFoundException이 발생합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 안드로이드 에뮬레이터에서 프로그램을 실행하고 있습니다.안드로이드 : DataInputStream 및 DataOutputstream에 내 디렉토리가 없습니다.

File externalStorageDir = new File (Environment.getExternalStorageDirectory().getAbsoluteFile(),"audiosettings.txt"); 

/**Stores the game volume level*/ 
int gameVolume_level; 
/**Stores the music volume level*/ 
int musicVolume_level; 
/**Stores the GUI volume level*/ 
int guiVolume_level; 

private void loadAudio() { 


    try { 
     DataInputStream dis = new DataInputStream(new FileInputStream(externalStorageDir)); 

     gameVolume_level = dis.readInt(); 
     dis.readChar(); 
     musicVolume_level = dis.readInt(); 
     dis.readChar(); 
     guiVolume_level = dis.readInt(); 
     dis.readChar(); 



    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

} 

private void saveAudio() { 

DataOutputStream dos; 
try { 
    dos = new DataOutputStream(new FileOutputStream(externalStorageDir)); 
    dos.writeInt(gameVolume_level); 
    dos.writeChar('\t'); 
    dos.writeInt(musicVolume_level); 
    dos.writeChar('\t'); 
    dos.writeInt(guiVolume_level); 
    dos.writeChar('\n'); 
    dos.close(); 



} catch (FileNotFoundException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

}

답변

0

귀하의 구현은 권리입니다. 그러나 휴대 전화 나 에뮬레이터에서 SD 카드를 사용할 수 있는지 확인해야합니다.

Environment.getExternalStorageDirectory().getAbsoluteFile() 

반환 파일을 기존 여부를 쉽게, 당신이 시도 할 수 있도록합니다.

파일이있는 경우 권한을 확인하십시오. 외장형 저장 장치를 사용하려면 AndroidManifest.xml에 다음 권한이 필요합니다.

희망이 있습니다.

+0

감사합니다. 사용 권한은 내가 저장할 수 있어야합니다. 이제 작동 중입니다. 감사! – iamarnold

관련 문제