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

Posted

技术标签:

【中文标题】Android:DataInputStream 和 DataOutputstream 看不到我的目录【英文标题】:Android: DataInputStream & DataOutputstream not seeing my directory 【发布时间】:2012-02-23 00:00:40 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

为了方便,你可以试试是否

Environment.getExternalStorageDirectory().getAbsoluteFile()

返回现有文件。

如果文件存在,检查权限。如果你想使用外部存储,androidManifest.xml 中需要以下权限:

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

希望对你有帮助。

【讨论】:

谢谢,使用权限是我需要保存的。它现在正在工作。谢谢!

以上是关于Android:DataInputStream 和 DataOutputstream 看不到我的目录的主要内容,如果未能解决你的问题,请参考以下文章

DataInputStream和DataOutputStream

JAVA IO操作:数据操作流:DataOutputStream和DataInputStream

数据流: DataInputStream 和 DataOutputStream

DataInputStream和DataOutputStream

DataOutputStream和DataInputStream

JavaI/O:简单的使用DataOutputStream和DataInputStream操作文件流