Android:将PNG ByteArray写入文件

Android:将PNG ByteArray写入文件,android,bitmap,png,bytearray,uri,Android,Bitmap,Png,Bytearray,Uri,我已将图像文件读入ByteArray,但如何将其写回。我的意思是将ByteArray保存到文件系统中的图像文件。PNG格式优先 从PNG文件到ByteArray的我的代码: ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), mUri); bitmap.compress(B

我已将图像文件读入ByteArray,但如何将其写回。我的意思是将ByteArray保存到文件系统中的图像文件。PNG格式优先

从PNG文件到ByteArray的我的代码:

ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), mUri);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();

我知道有一些类似的问题,但我没有找到这个问题的确切答案。谢谢

只需使用
FileOutputStream
将字节数组写入。像这样:

File file = new File(getFilesDir()+"/file.png");
FileOutputStream fos = new FileOutputStream(file);

//write your byteArray here
fos.write(byteArray);
fos.flush();
fos.close();

你能使用位图图像吗?嗨@HuyTran,我可以使用位图图像,但限制是我得到的数据是经过压缩的byteArray,而不是原始位图。我可以将其转换回位图,然后将位图写入文件,但也不行。您好@joao2fast4u,谢谢您的回答。我尝试编写代码并将file.png写入/Download文件夹,但在下载文件夹中没有看到任何文件,在LogCat中也没有看到任何错误。我还仔细检查了三件事,1)我在清单文件中启用了“写入外部存储”的权限。2) byteArray不是空的,大约是70k字节。3) 文件目录应该是正确的,它是“/storage/emulated/0/Download/images.jpg”。是否存在导致此文件写入问题的其他可能原因?