base64 文字列としてコード化された画像があり、それを別のアクティビティに渡したいです。インテントの余分なサイズ制限のため、このコードを使用して一時ファイルに保存しました
FileOutputStream fos;
try {
fos = openFileOutput(imagefilename, Context.MODE_PRIVATE);
try {
fos.write(encodedPhoto.getBytes());
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
そして、別のアクティビティで画像ファイル名を渡しました。
新しいアクティビティでは、このコードを使用して読み取りました
try {
FileInputStream fis = openFileInput(imagefilename);
String strLine = null;
StringBuffer buffer = new StringBuffer();
DataInputStream dataIO = new DataInputStream(fis);
if ((strLine = dataIO.readLine()) != null) {
buffer.append(strLine);
}
dataIO.close();
fis.close();
encodedPhoto = strLine;
} catch (NullPointerException e) {
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ただし、この方法では元のエンコードされた Base64 写真を正しく読み取ることができません...
エラーは発生しませんが、エンコードされた画像の文字列(encodedPhoto)が読み取られ、破損しているようです
この問題を解決するにはどうすればよいですか?