这是我想做的。我想做一个应用程序,例如它有一个按钮,将下载某个视频文件,并把它放在资源(原始)文件夹。这可能吗?
xzv2uavs1#
简短回答:你不能。
在任何情况下,都不能在运行时将文件写入/转储到raw/assets文件夹。您可以下载视频并将其存储到内部存储器(应用程序保留存储)或外部存储器(通常是SD卡)例如,您可以存储媒体文件,例如像这样将位图存储到外部存储器。
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卡不可用或出于其他任何原因。保存到内部存储器的文件只能由保存文件的应用程序访问。用户和其他应用程序都不能访问这些文件
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致上,
yeotifhr2#
您可以使用android sqlite数据库来管理您的下载文件。
2条答案
按热度按时间xzv2uavs1#
简短回答:你不能。
在任何情况下,都不能在运行时将文件写入/转储到raw/assets文件夹。
您可以下载视频并将其存储到内部存储器(应用程序保留存储)或外部存储器(通常是SD卡)
例如,您可以存储媒体文件,例如像这样将位图存储到外部存储器。
同样,从外部存储器读取文件,在本例中是图像(然后将其加载到imageView)
编辑:另外,您还可以将数据存储到内存中
或者,您也可以将位图保存到内部存储器,以防SD卡不可用或出于其他任何原因。保存到内部存储器的文件只能由保存文件的应用程序访问。用户和其他应用程序都不能访问这些文件
Check this documentation for more information
致上,
yeotifhr2#
您可以使用android sqlite数据库来管理您的下载文件。