안드로이드에서
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에서 파일을 불러와서 예제를 작성하였다.
'Android App' 카테고리의 다른 글
Custom ListView 만들기 (0) | 2014.08.13 |
---|---|
file size 나타내기 간략하게... (0) | 2014.08.13 |
안드로이드내부에서 페이지 이동 Activity간의 이동 (0) | 2014.08.12 |
[android] Eclipse에서 메서드 정의로 이동시 인터페이스(Interface)가 아닌 구상(Implementation) 클래스의 정의로 이동하기 (0) | 2014.05.26 |
[android] string.xaml에 정의된 string 사용하기 (0) | 2014.05.26 |