public static void copyFilesFromAssets(Context context, String filePath) { File jhPath = new File(filePath + "/help.pdf"); //查看该文件是否存在 if (jhPath.exists()) { Log.e("test", "该文件已存在"); } else { Log.e("test", "该文件不存在"); try { //得到资源 AssetManager am = context.getAssets(); //得到该文件的输入流 InputStream is = am.open("help.pdf"); Log.e("test", is + ""); //用输出流写到特定路径下 FileOutputStream fos = new FileOutputStream(jhPath); // Log.e("test", "fos="+fos); // Log.e("test", "jhPath="+jhPath); //创建byte数组 用于1KB写一次 byte[] buffer = new byte[1024]; int count = 0; while ((count = is.read(buffer)) > 0) { fos.write(buffer, 0, count); } //最后关闭流 fos.flush(); fos.close(); is.close(); } catch (IOException e) { e.printStackTrace(); } }得不到sdcard的路径
时间: 2024-02-10 12:08:42 浏览: 170
如果您想要获取SD卡的路径,可以使用以下方法:
```
String sdcardPath = Environment.getExternalStorageDirectory().getAbsolutePath();
```
您可以将该代码添加到您的方法中,如下所示:
```
public static void copyFilesFromAssets(Context context, String filePath) {
String sdcardPath = Environment.getExternalStorageDirectory().getAbsolutePath();
File jhPath = new File(sdcardPath + "/" + filePath + "/help.pdf");
//查看该文件是否存在
if (jhPath.exists()) {
Log.e("test", "该文件已存在");
} else {
Log.e("test", "该文件不存在");
try {
//得到资源
AssetManager am = context.getAssets();
//得到该文件的输入流
InputStream is = am.open("help.pdf");
Log.e("test", is + "");
//用输出流写到特定路径下
FileOutputStream fos = new FileOutputStream(jhPath);
//创建byte数组 用于1KB写一次
byte[] buffer = new byte[1024];
int count = 0;
while ((count = is.read(buffer)) > 0) {
fos.write(buffer, 0, count);
}
//最后关闭流
fos.flush();
fos.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这样,您就可以将文件保存到SD卡的指定目录中了。
阅读全文