2012-07-29 1 views
1

이미지를 base64 문자열로 코딩 했으므로 다른 활동에 전달하려고합니다. 인텐 트의 크기 제한 때문에이 코드를 사용하여 저장했습니다 임시로기본 64로드 임시 파일에서 이미지 문제

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(); 

파일 그리고 새로운 활동에서 다른 활동 imagefilename,

를 통과 한 나는 그것을

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(); 
      } 
을 읽고이 코드를 사용했다

그러나 내가 인코딩 된 이미지 (encodedPhoto) 읽기의 그러나 문자열 어떤 오류가 발생하지 않는

내가 제대로 원래 Base64로 인코딩의 사진을 읽을 수 없습니다 이런 식으로 ...에

를 손상 보인다 이 문제를 어떻게 해결할 수 있습니까? 당신은 수정하지 않고 파일의 문자열 내용을 읽을 수있는이 방법으로

try { 
       FileInputStream fis = openFileInput(imagefilename); 
       String line = null; 
       StringBuilder buffer = new StringBuilder(); 
       BufferedReader reader = new BufferedReader(
         new InputStreamReader(fis)); 

       while ((line = reader.readLine()) != null) { 
        buffer.append(line); 
       } 

       fis.close(); 
       encodedPhoto = buffer.toString(); 
      } catch (NullPointerException e) { 

      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

: 귀하의 읽기 방법이 잘못

답변