读取RAW资源并保存到内部存储中

时间:2014-02-14 17:54:29

标签: android inputstream android-resources

我正在尝试创建内部存储文件夹,并将我的RAW文件复制到这些文件夹。我有以下方法

修改

private byte[] buffer = null;
private String DIR_NAME = "images/sample_images";

public void storeRAWFilesToInternalStorage()
{
buffer = new byte[3000000];

mFilesDir = tempContext.getFilesDir();
mImagesDir = new File(mFilesDir, DIR_NAME);

if (!mImagesDir.exists() && !mImagesDir.isDirectory()) dirCreated = mImagesDir.mkdirs();

InputStream fileStream = tempContext.getResources().openRawResource(R.raw.desert);
fileStream.read(buffer);
fileWithinMyDir = new File(mImagesDir, "my_sample_image.jpg");
FileOutputStream outputStream = new FileOutputStream(fileWithinMyDir);

outputStream.write(buffer);
outputStream.close();
}

它工作正常,但我有以下问题。

我应该分配什么缓冲区大小,因为我不知道每个文件的字节大小。如果我分配超过要求,那么我就是在浪费记忆力。如果我分配的数量少于要求,则图像将无法正确保存。

另外,我看到图像保存在我的内部存储器中(使用ES Fileexplorer来查看文件),但是当我尝试打开它时,它并没有显示出来。怪异。

结束编辑

另外如果我有100个RAW文件,我想复制到我的内部文件夹,说“图像”。我不想输入数千次。

InputStream fileStream = tempContext.getResources().openRawResource(R.raw.**asset_name**);

有没有办法遍历所有原始资源,读取它们并将它们存储到Internal Storage文件夹?我能看到一些代码片段吗?

0 个答案:

没有答案