我正在尝试创建内部存储文件夹,并将我的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文件夹?我能看到一些代码片段吗?