Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我想在安卓系统的sd卡上读写一个加密的图像文件_Java_Android_Encryption - Fatal编程技术网

Java 我想在安卓系统的sd卡上读写一个加密的图像文件

Java 我想在安卓系统的sd卡上读写一个加密的图像文件,java,android,encryption,Java,Android,Encryption,我想保存从gallery拍摄的图像,并将该图像转换为加密字符串。加密字符串太大,我想用下面的代码在sd卡中写入 File sdCard = Environment.getExternalStorageDirectory(); File dir = new File(sdCard.getAbsolutePath() + "/" + folder_name); try {

我想保存从gallery拍摄的图像,并将该图像转换为加密字符串。加密字符串太大,我想用下面的代码在sd卡中写入

            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文件中进行测试和检查)。