Android 从原始文件夹读取文件会导致“找不到文件”异常

Android 从原始文件夹读取文件会导致“找不到文件”异常,android,Android,我正在尝试从原始文件夹读取文件dev.txt 我已放置文件: java.io.FileNotFoundException: /com.appname.organizer/raw/dev: open failed: ENOENT (No such file or directory) PEMParser pemParser = new PEMParser(new FileReader(uri.getPath())); 我得到了一个例外: java.io.FileNotFoundExcept

我正在尝试从原始文件夹读取文件
dev.txt

我已放置文件:

java.io.FileNotFoundException: /com.appname.organizer/raw/dev: open failed: ENOENT (No such file or directory)
PEMParser pemParser = new PEMParser(new FileReader(uri.getPath()));


我得到了一个例外:

java.io.FileNotFoundException: /com.appname.organizer/raw/dev: open failed: ENOENT (No such file or directory)
PEMParser pemParser = new PEMParser(new FileReader(uri.getPath()));
第行:

java.io.FileNotFoundException: /com.appname.organizer/raw/dev: open failed: ENOENT (No such file or directory)
PEMParser pemParser = new PEMParser(new FileReader(uri.getPath()));
我正在尝试从原始文件夹读取文件dev.txt

这是开发机器上的一个文件。它不是安卓设备上的文件<代码>文件阅读器将无法工作


相反,在
Resources
对象上使用
openRawResource()
来获取
InputStream
。如果需要,将其包装在我的应用程序中的
InputStreamReader

中,我已经使用了此功能,它对我有效:

URL url = getClass().getResource("/assets/dev.txt");
File f = new File(url.toURI());
也可以使用getResourceAsStream()方法直接获取输入流:


尝试删除文件名的扩展名。例如,“dev”不是“dev.txt”,例如:


我使用这个函数将一个二进制文件从raw复制到app files dir,然后从那里执行二进制文件

    File dev = new File(getApplicationContext().getFilesDir(), "dev.txt");

        if (!dev.exists()) {
            try {
                dev.createNewFile();
            } catch (IOException e) {
                Log.e(TAG, "Failed to create new file!", e);
            }
        installBinaryFromRaw(this, R.raw.dev, dev);   
函数将文件从原始复制到/data/data//file/filename

    public static void installBinaryFromRaw(Context context, int resId, File file) {
        final InputStream rawStream = context.getResources().openRawResource(resId);
        final OutputStream binStream = getFileOutputStream(file);

        if (rawStream != null && binStream != null) {
            pipeStreams(rawStream, binStream);

            try {
                rawStream.close();
                binStream.close();
            } catch (IOException e) {
                Log.e(TAG, "Failed to close streams!", e);
            }

            doChmod(file, 755);
        }
    }

这和我发布的代码是一样的