这是我要做的。我想制作一个应用程序,例如它有一个按钮,可以下载某个视频文件并将其放在资源(原始)文件夹中。有可能吗?
答案 0 :(得分:1)
简答:你不能。
在任何情况下,您都无法在运行时将文件写入/转储到raw / assets文件夹。
您可以做的是下载视频并将其存储到内存(应用程序预留存储)或外部存储器(通常是您的SD卡))
例如,您可以将媒体文件(例如Bitmap)存储到外部存储器中。
private void saveAnImageToExternalMemory(Bitmap finalBitmap) {
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/saved_images");
myDir.mkdirs();
String fname = "yourimagename.jpg";
File file = new File (myDir, fname);
if (file.exists ()) file.delete ();
try {
FileOutputStream out = new FileOutputStream(file);
finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
同样,从外部存储器读取一个文件,在本例中是一个图像(然后加载到imageView)
private void loadImageFromStorage(String path){
try {
File f=new File(path, "profile.jpg");
Bitmap b = BitmapFactory.decodeStream(new FileInputStream(f));
ImageView img=(ImageView)findViewById(R.id.imgPicker);
img.setImageBitmap(b);
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
}
修改:此外,您可以将数据存储到内部存储器
或者您也可以将位图保存到内部存储中 如果没有SD卡或出于其他原因,您可以使用SD卡 可能有。保存到内部存储的文件只能通过以下方式访问 保存文件的应用程序。无论是用户还是其他人 应用程序可以访问这些文件
public boolean saveImageToInternalStorage(Bitmap image) {
try {
FileOutputStream fos = context.openFileOutput("yourimage.png", Context.MODE_PRIVATE);
// Writing the bitmap to the output stream
image.compress(Bitmap.CompressFormat.PNG, 100, fos);
fos.close();
return true;
} catch (Exception e) {
Log.e("saveToInternalStorage()", e.getMessage());
return false;
}
}
Check this documentation for more information
此致