Android App2014. 8. 12. 17:34

안드로이드에서

 

getFilesDir().getAbsolutePath();

를 하게 되면

앱내부에서 저장할수 있는 Path를 알수 있다.

 

data/data/앱이름/files 에 저장이 된다.

 

하지만 여기에 강제로 저장을 하게 되면 ..이렇게

 

String dirPath = getFilesDir().getAbsolutePath();

File saveFile = new File(dirPath+"/test.txt");
FileOutputStream fos = new FileOutputStream(saveFile);

 

읽기,쓰기 등등 아무 권한이 없는 파일이 생성된다.

 

그래서 나중에 이 파일을 읽을려고해도 읽을수가 없다... 물론 파일은 보인다.

 

수정된 코드는 이렇다.

 

 FileOutputStream fos = openFileOutput("test2.txt",Context.MODE_WORLD_READABLE);

 

 MODE_PRIVATE  혼자만 사용하는 배타적인 모드로 파일 생성 .. (디폴트)
 MODE_APPEND  파일이 이미 존재할 경우 덮어쓰기 모드로 열지 않고 추가 모드로 연다. ( 기존 내용에 추가 )
 MODE_WORLD_READABLE  다른 응용 프로그램이 읽을 수 있도록 허용
 MODE_WORLD_WRITEABLE  다른 응용 프로그램이 쓸 수 있도록 허용

 

이렇게 모드를 바꾼후에야 된다...

 

참고 :  http://enosent.tistory.com/4

 

이미지 파일은

 

  AssetManager manager = getAssets();
        InputStream open;
  try {
       open = manager.open("WhiteBall.jpg");
       Bitmap bitmap = BitmapFactory.decodeStream(open);
       FileOutputStream os = openFileOutput("WhiteBall.jpg",Context.MODE_WORLD_READABLE);        
       bitmap.compress(Bitmap.CompressFormat.JPEG, 100, os);
       os.close();
   
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

 

이렇게 asset에서 파일을 불러와서 예제를 작성하였다.

 

 

 

 

 

 

 

Posted by 동동(이재동)