我正在开发Android应用程序中的导出功能。这些文件是wav文件,存储在res / raw文件夹中。我该如何访问这些文件?
View v = inflater.inflate(R.layout.activity_dialog, container, false);
ImageButton mImageButton = (ImageButton) v.findViewById(R.id.image_button);
selection [i]是res / raw文件夹中我需要的文件的文件名。代码总是返回“NOT”,这意味着它没有从res / raw文件夹中找到我想要的文件。有人可以帮我吗?感谢。
答案 0 :(得分:0)
我不确定您是否可以通过类似File
来访问资源。这是我在原始文件夹中读取HTML文件的方式:
public static String getStringFromResource(Context context, @RawRes int id) {
BufferedReader reader = null;
try {
StringBuilder stringBuilder = new StringBuilder();
InputStream inputStream = context.getResources().openRawResource(id);
reader = new BufferedReader(new InputStreamReader(inputStream));
String currentLine;
while ((currentLine = reader.readLine()) != null ) {
stringBuilder.append(currentLine);
}
return stringBuilder.toString();
} catch (IOException e) {
Log.e(TAG, "Error opening raw resource: " + id);
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
Log.e(TAG, "Error closing raw resource: " + id, e);
}
}
}
return null;
}
您的关键部分是InputStream inputStream = context.getResources().openRawResource(id);
调用,它会为您提供文件流。使用该流写入要导出的输出文件。
答案 1 :(得分:0)
这将返回原始文件的字节数组:
Resources res = context.getResources();
InputStream inputStream = res.openRawResource(rawResource);
try {
byte[] b = new byte[inputStream.available()];
inputStream.read(b);
} catch (Exception e) {
// exception thrown
}