的inputStream给java.io.FileNotFoundException
问题描述:
我已经在我的Android应用程序创建新的线程读取.p12文件是这样的:的inputStream给java.io.FileNotFoundException
AssetManager am = getAssets();
InputStream inputStream = am.open("C:\\Users\\UkrBikeApp-ff55878cb577.p12");
此文件在目录中。但每次我得到
java.io.FileNotFoundException
的simular代码简单的Java应用程序的工作没有任何问题。是什么原因?
答
首先,C:\\Users\\UkrBikeApp-ff55878cb577.p12
是Windows机器上文件的路径。 Android不是Windows。
二,C:\\Users\\UkrBikeApp-ff55878cb577.p12
是一个文件系统路径。这不是您的APK中的资源路径,因此AssetManager
无论如何都不知道该如何处理。
如果要打包在你的应用程序文件:
在适当的模块和源集创建
assets/
目录(例如,app/src/main/assets/
)把文件中
assets/
使用
open()
对AssetManager
使用普通文件名
有什么方法可以从资产的输入流创建文件?我需要这个文件在GoogleCredentials中使用它。 – DzouSi
@DzouSi:获取'InputStream'。在你控制的某个文件(例如'getFilesDir()')中创建一个'FileOutputStream'。使用标准Java I/O复制字节。 – CommonsWare