Java 我想在安卓系统的sd卡上读写一个加密的图像文件
我想保存从gallery拍摄的图像,并将该图像转换为加密字符串。加密字符串太大,我想用下面的代码在sd卡中写入Java 我想在安卓系统的sd卡上读写一个加密的图像文件,java,android,encryption,Java,Android,Encryption,我想保存从gallery拍摄的图像,并将该图像转换为加密字符串。加密字符串太大,我想用下面的代码在sd卡中写入 File sdCard = Environment.getExternalStorageDirectory(); File dir = new File(sdCard.getAbsolutePath() + "/" + folder_name); try {
File sdCard = Environment.getExternalStorageDirectory();
File dir = new File(sdCard.getAbsolutePath() + "/"
+ folder_name);
try {
FileOutputStream fos = new FileOutputStream(dir);
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write(getImageDetails.getImage_details());
osw.flush();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.out.println(stringBuffer.toString());
然后我尝试使用以下代码从sd卡读取加密字符串:
FileReader rdr;
StringBuffer stringBuffer;
try {
rdr = new FileReader("/sdcard/"+ folder_name+"/"+file.getName());
BufferedReader bfr = new BufferedReader(rdr);
String line = "";
stringBuffer = new StringBuffer();
while ((line = bfr.readLine()) != null) {
stringBuffer.append(line);
}
} catch (Exception e) {
e.printStackTrace();
}
当我尝试使用以下代码显示字符串时
File sdCard = Environment.getExternalStorageDirectory();
File dir = new File(sdCard.getAbsolutePath() + "/"
+ folder_name);
try {
FileOutputStream fos = new FileOutputStream(dir);
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write(getImageDetails.getImage_details());
osw.flush();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.out.println(stringBuffer.toString());
我可以得到我试图写入SD卡的加密字符串的一部分。
如何从sd卡获取整个加密字符串?您可以将图像编码为base64字符串并写入文件。实际上,我使用base64将位图格式的图像转换为字符串。然后我加密该字符串并将其保存到sd卡。您的代码似乎正确,您确定要将整个加密字符串写入文件(尝试将其放入txt文件中进行测试和检查)。