从服务器下载文件并将其放入/ raw文件夹

时间:2016-08-02 14:09:46

标签: java android

这是我要做的。我想制作一个应用程序,例如它有一个按钮,可以下载某个视频文件并将其放在资源(原始)文件夹中。有可能吗?

1 个答案:

答案 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

此致