java - 尝试从 Android Studio 中的 res->raw 文件夹获取视频 uri 时出现文件未找到异常

标签 java android

我有下面的代码从 Android studio 中的 res->raw 文件夹获取视频(glass.avi)并保存到 SD 卡。但它显示文件未找到异常。

 vuri= Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.glass);
        OutputStream out;

        try
        {
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            FileInputStream fis = new FileInputStream(new File(String.valueOf(vuri)));

            byte[] buf = new byte[1024];
            int n;
            while (-1 != (n = fis.read(buf)))
                stream.write(buf, 0, n);

            byte[] bytes = stream.toByteArray();




        String root = Environment.getExternalStorageDirectory().getAbsolutePath()+"/";
        File createDir = new File(root+"master"+File.separator);
        createDir.mkdir();


        File file = new File(root + "master" + File.separator +"master.avi");

        file.createNewFile();
        out = new FileOutputStream(file);
        out.write(bytes);
        out.close();

    } catch (IOException e) {
        e.printStackTrace();
    }

最佳答案

它适用于以下代码。

getResources().getIdentifier("FILENAME_WITHOUT_EXTENSION",
                             "raw", getPackageName());

将其作为输入流获取

InputStream ins = getResources().openRawResource(
            getResources().getIdentifier("FILENAME_WITHOUT_EXTENSION",
            "raw", getPackageName()));

关于java - 尝试从 Android Studio 中的 res->raw 文件夹获取视频 uri 时出现文件未找到异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46640461/

相关文章:

java - 调色板颜色缓存的单例实例

android - SQLiteDatabase.execSQL 无法按预期方式用于 INSERT INTO 查询

java - 或匹配的正则表达式

java - 每秒将数据保存到数据库,解决数据库连接丢失或缓慢的问题

java - 将dll添加到spring mvc项目中

javascript - Android Honeycomb 模拟器上的 Google 图表轴渲染问题

android - 如何在 ListView 中显示项目列表

android - 有没有办法为Android应用程序检查元素

android - 上下文包含什么?

Java 多线程 : positioning of methods