2011-10-28 45 views
1

我得到一个输入流,这是我的原始文件夹中的一个mp3,然后我试图把它写回到原始文件夹(我知道这听起来很蠢,但我想这样做),但我得到一个错误 - 找不到文件myFile.mp3。任何想法,我错了?从输入流写入到android中的文件?

try 
     { 
      File f=new File("android.resource//com.apps/raw/myFile.mp3"); 
      InputStream myRawResource = context.getActivity().getResources().openRawResource(mp3ID); 
      OutputStream out=new FileOutputStream(f); 
      byte buf[]=new byte[1024]; 
      int len; 
      while((len=myRawResource.read(buf))>0) 
      out.write(buf,0,len); 
      out.close(); 
      myRawResource.close(); 
    } 
      catch (IOException e){  
       //error 
       } 

回答

-1

这不能做,因为资源在运行时是只读的,存储在APK,并且需要被编译为包括R中在编译时。

0

您无法在android中编写raw和assets文件夹。

编辑:

Android documentation

我复制的关键短语(提示从文档): 如果你想保存在您在编译时应用的静态文件,该文件保存在您的项目res/raw /目录。你可以用openRawResource()打开它,传递R.raw。资源ID。此方法返回可用于读取文件的InputStream(但不能写入原始文件)。

+0

谢谢,如果我可以在运行时读取文件,这将是伟大的,但我怎样才能使用声音池的输入流? – panthro

+0

我从来没有使用SoundPool类,但我认为这会帮助你:[从原始的resorce音频播放](http://www.barebonescoder.com/2010/06/android-development-audio-playback-safely/) – kameny