2012-02-17 22 views
2

我正在创建一个应用程序,在该应用程序中,我必须录制声音并将其保存并稍后播放。我想将录制的音频保存在应用程序的原始文件夹中。我应该如何给出原始文件夹的目录路径来保存我的音频文件。如何将录制的音频文件保存在应用程序的原始文件夹中

+0

你试图将这个文件保存到SD卡或直接在手机上? – nemesisfixx 2012-02-17 11:33:41

+1

不,我不想保存在SD卡上的文件bcoz一个设备可能或不可能有SD卡。我试图将文件保存在我的应用程序的res/raw文件夹中 – Nishant 2012-02-17 11:35:07

回答

2

对不起,你不能。

由于Android .apk file is read-only,您不能在包层次结构中编写任何文件(如res,raw,asset)。

更好地将其存储在应用程序的包(内部存储)或外部存储中。

更新:

这将创建应用程序的内部存储的文件。

//content is base64 string you can use directly use FileInputstream's byte 
byte[] pdfAsBytes = Base64.decode(content, 0); 
//filePath just filename of your audio file this will create a file in /data/data/<package_name>/files 
FileOutputStream fos = openFileOutput(filePath, Context.Context.MODE_PRIVATE); 
fos.write(pdfAsBytes); 
fos.close(); 
+0

For your need/data/data/< package_name>/files是有用的。 – user370305 2012-02-17 11:48:25

2

构建应用程序后无法重新编写资源。你可以用放置在资源中的文件做的最好的事情是将它们读入内存,修改它们,并将结果保存到SD卡或其他提供的存储区域。当您的应用程序被卸载时,由应用程序创建的文件也会被删除,所以需要担心。

要保存到SD卡,尝试这样的事情:

您需要的权限:

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

然后你就可以在发送数据和文件名:

public void saveFileToCard(byte[] data,String filename) { 
    File file = new File(Environment.getExternalStorageDirectory(), filename); 
    FileOutputStream fos; 
    try { 
     fos = new FileOutputStream(file); 
     fos.write(data); 
     fos.flush(); 
     fos.close(); 
    } catch (FileNotFoundException e) { 
    // handle exception 
    } catch (IOException e) { 
    // handle exception 
    } 
} 

此,或者它的一个变种应该帮助你,我想。

相关问题