Android File – res/raw, assets res/raw , assets 파일

Download Report

Transcript Android File – res/raw, assets res/raw , assets 파일

android
Android-File
(DMI) Kang GiHoon
Android File
내부 파일
res 디렉토리의 raw 파일
assets 디렉토리의 파일
sdcard 의 파일
DMI--Kang Gihoon
Android File - 내부파일
 내부 파일
 위치 : /data/data/패키지경로/files/file.txt
 application 내에서만 접근 가능
 openFileOutput() : 파일 쓰기
 openFileInput() : 파일읽기
[에뮬레이터상의 파일위치]
내부파일
내용
파일쓰기
//file outputstream을 얻어 파일쓰기
fileOutputStream = openFileOutput(fileName,
MODE_PRIVATE);
BufferedOutputStream bufferedOutputStream = new
BufferedOutputStream(fileOutputStream);
String data = ed1.getText().toString();
if(data == null || data.equals("")) return ;
byte[] buffer = data.getBytes();
bufferedOutputStream.write(buffer);
bufferedOutputStream.flush();
파일읽기
in = openFileInput(fileName);
BufferedInputStream bufferedIn = new
BufferedInputStream(in);
byte[] buffer = new byte[in.available()];
bufferedIn.read(buffer);
String datas = new String(buffer);
ed2.setText(datas);
DMI--Kang Gihoon
Android File – res/raw, assets
 res/raw , assets 파일
 위치 : /res/raw , res/assets 디렉토리의 파일 제어
 다른 res내 파일 (ex, res/values 의 각 xml파일)들처럼 배포시 binary 형태로 배포되지 않음
 raw 디렉토리 파일 : getResources().openRawResource(R.raw.test_1) 파일 형태로 접근
 raw , assets 디렉토리 파일들은 동적으로 파일 생성 할 수 없음(?)
 assets 디렉토리의 파일들은 일반적인 파일 폴더 처럼 조금은 자유로운 파일 접근 가능.
 AssetManager 를 통한 assets 디렉토리 파일 컨트롤.
[raw 파일위치]
파일
내용
raw 디렉
토리 파일
읽기
//raw파일 읽음.
in =
getResources().openRawResource(R.raw.test_1);
BufferedInputStream bufferedIn = new
BufferedInputStream(in);
byte[] buffer = new byte[in.available()];
assets
디렉토리
파일
//assets 파일 읽음.
AssetManager assetManager =
getResources().getAssets();
in = assetManager.open("test1/test1.log");
BufferedInputStream bufferedIn = new
BufferedInputStream(in);
byte[] buffer = new byte[in.available()];
[assets 파일위치]
DMI--Kang Gihoon
Android File – sdcard
 외부저장소 (sdcard)
 위치 : /sdcard/ 디렉토리내
 외부 application에서 파일 컨트롤 가능할 수 있도록 권한부여 가능
 new File(“/sdcard/”) 또는 Environment.getExternalStorageDirectory() 로 외부저장소 디렉토리지정
 android.permission.WRITE_EXTERNAL_STORAGE permission 필요
[sdcard 파일위치]
sdcard 파일
내용
파일쓰기
fw = new FileWriter("/sdcard/"+fileName);
fw.write(datas);
fw.flush();
파일읽기
File file = Environment.getExternalStorageDirectory();
in = new
FileInputStream(file.toString()+"/"+fileName);
BufferedInputStream bufferedIn = new
BufferedInputStream(in);
byte[] buffer = new byte[in.available()];
bufferedIn.read(buffer);
DMI--Kang Gihoon
Android File – Example




내부 파일 Read/Write
res/raw 디렉토리내 파일 Read
assets 디렉토리내 파일 Read
외부저장소(sdcard ) read/Write
(*) AndroidManifest.xml 에서 activity를 변경하여 실행
내용
파일명
내부파일 Read/Write
FileRawTestActivity.java
raw/assets 파일 read
FileSdCardTestActivity.java
sdcarc read/write
FileTestActivity.java
DMI--Kang Gihoon