我需要文件帮助。
int aIdSound=R.raw.sound;
String path=getString(aIdSound); // return res/raw/sound.wav
File file=new File(path);
if(file.exists()){
// File doesnt exist.
}
所以我试过了
InputStream input=getResources().openRawResource(aIdSound);
但是我需要File类,所以有没有办法如何将InputStream更改为File或任何想法如何通过id获取getFile?
答案 0 :(得分:0)
您必须阅读InputStream
,将其写入包含FileOutputStream
的外部文件,以获取原始资源的File
实例。
或者我错过了一个API。 :)
答案 1 :(得分:0)
尝试使用:
final int resId = getResources().getIdentifier("fileName.wav", "raw", getPackageName());
如果您正在尝试播放音频,则可能需要调查MediaPlayer。以下是我如何使用它:
try {
final MediaPlayer player = MediaPlayer.create(this, redId);
mp.start();
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
如果您决定使用外部保存的文件,则应使用:
File fis = new File(Environment.getExternalStorageDirectory().getPath() + "fileName" + ".wav");
Uri external = Uri.fromFile(fis);
final MediaPlayer player = MediaPlayer.create(this, external);
答案 2 :(得分:0)
将该文件放在Asserts
文件夹
您可以使用
获取该文件 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = dbf.newDocumentBuilder();
// reading a assert file context.getAssets().open("filename.xml")
Document doc = docBuilder.parse(context.getAssets().open("filename.xml"));
或从外部文件夹(SD卡)
try{
// Creating Input Stream
File file = new File(context.getExternalFilesDir(null), filename);
FileInputStream myInput = new FileInputStream(file);
}catch (Exception e){
e.printStackTrace();
Toast.makeText(context, "Error in reading the file", Toast.LENGTH_SHORT).show();
}