안드로이드 개발 질문/답변
(글 수 45,052)
public static boolean saveCert(Context context, String _fileName,byte[] _date) {
boolean rtn = false;
FileOutputStream fos = null;
try {
fos = context.openFileOutput(_fileName, Context.MODE_PRIVATE);
fos.write(_date);
System.out.println("saveCert() _fileName? = " + _fileName);
fos.flush();// 버퍼에 저장되어 아직 출력되지 않은 데이터를 강제로 출력시킨다.
System.out.println("saveCert() _date? = " + _date);
System.out.println("saveCert() fos? = " + fos);
rtn = true;
} catch (FileNotFoundException e1) {
rtn = false;
} catch (IOException e) {
rtn = false;
} finally {
try {
if (null != fos) {
fos.close();
System.out.println("@@@@@@@@@@@@@@@@@@@@@@ fos? = " + fos);
fos = null;
}
} catch (Exception e) {
}
}
System.out.println("try rtn? = " + rtn);
System.out.println("@@@@@@ fos? = " + fos);
return rtn;
}
위와 같이 파일을 저장하고 있습니다. 이 경우는 어플의 내부공간에 저장이 되죠..?
다른 어플이 저장된 File을 접근을 못하지요..
해당 File을 다시 SD카드에 저장 하고 싶은데요..(usb마운트 시켯을때 file이 보이도록)
이럴때 지금 저장되어있는 file을 위치를 알아야 읽은후 다시 저장할수 있는거 아닌가요..?
파일입출력을 txt로만 해봐서 이런 경우엔느 어떤식으로 해야될지 잘 모르겠습니다...
또한가지...안드로이드폰의 경우 file을 저장할수 있는 곳은 총 3곳이 맞나요?
내장메모리, 내장메모리 안에 어플의 고유공간(아이폰으로 따지면 sendbox와 같은곳), 외장메모리
이렇게 3곳 으로 이해하고잇는데 맞나요..? 맞다면 지금 제가 저장하는 방법은 내장메모리 안에 어플의 고유공간에 저장이
되고있는거죠? 루팅을 하지 않은 폰에서 file 확인이 안되어 답답하네요.




saveCert메소드의 _fileName 인자에 어떤 값을 주느냐에 따라서 저장되는 위치가 달라지겠죠...
일반적인 폰이라면, 내장메모리에 파일 쓰기는 불가능할겁니다.
내장 메모리 영역에 파일이 저장되었는지 확인해 보시려면
ASTRO 브라우저같은 탐색기 어플을 다운로드 받아서 실행해 보세요.
대부분의 안드로이드폰은 "루팅과 상관없이" 내장메모리 영역을 볼 수 있습니다.