繁体   English   中英

Android:DataInputStream和DataOutputstream看不到我的目录

[英]Android: DataInputStream & DataOutputstream not seeing my directory

我正在尝试将int值保存在外部存储的文本文件中。 当我尝试使用saveAudio()函数时,出现FileNotFoundException。 我究竟做错了什么? 我正在android模拟器中运行该程序。

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();
}

}

您的实现是正确的。 但是请注意,您必须验证手机或仿真器上是否有SD卡。

为了方便起见,您可以尝试是否

Environment.getExternalStorageDirectory().getAbsoluteFile()

返回现有文件。

如果文件存在,请检查权限。 如果要使用外部存储,则需要在AndroidManifest.xml中具有以下权限:

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

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM