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);
}
}
这和我发布的代码是一样的