6

我正在编写我的第一个 Android 应用程序,并且正在尝试读取res/raw资源文件。

以下代码异常throwsFileNotFound

AssetFileDescriptor fd = res.openRawResourceFd(R.raw.myfile);

但这行代码有效:

InputStream stream = res.openRawResource (R.raw.myfile);

我需要AssetFileDescriptor确定文件的长度。任何想法为什么它不起作用?

4

3 回答 3

5

你可以这样做:

FileDescriptor fd = getResources().openRawResourceFd(R.raw.rawResourceId).getFileDescriptor();

不需要 try/catch 块。

于 2014-01-22T16:03:29.270 回答
1

这行得通;

AssetFileDescriptor afd = res.openRawResourceFd(R.raw.rawResourceId);
于 2015-11-08T23:43:59.023 回答
0

将您的 myfile 移动到资产文件夹并尝试此操作

try{
    AssetFileDescriptor descriptor = getAssets().openFd( "myfile" );
    FileDescriptor fd = descriptor.getFileDescriptor();
}
catch(Exception)
{

}

或者您可以尝试使用以下代码从资源/原始文件打开 RAW 文件:

FileDescriptor fd = getResources().openRawResourceFd(R.raw.myfile).getFileDescriptor();
于 2011-11-22T05:32:50.540 回答