저장소
내부 저장소 : 애플리케이션을 통해서만 접근 가능
외부 저장소 : 단말기 내부 공유 영역, 컴퓨터와 연결하면 탐색을 통해 접근 가능
1 내부 저장소
<내부 저장소 저장>
//내부 저장소와 연결되어 있는 쓰기 스트림 추출
//MODE_PRIVATE 파일 덮어쓰기 , MODE_APPEND 파일 새로 쓰기
FileOutputStream fos = openFileOutput("myFile.dat",MODE_PRIVATE);
DataOutputStream dos = new DataOutputStream(fos);
//데이터를 쓴다.
dos.writeInt(100);
dos.writeUTF("문자열");
dos.flush();
dos.close();
<내부 저장소 읽기>
FileInputStream fis = openFileInput("myFile.dat");
DataInputStream dis = new DataInputStream(fis);
int data1 = dis.readInt();
String data2 = dis.readUTF();
dis.close();
2 외부 저장소
1 권한 등록
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
권한 허락 받기
2 경로 구하기
//저장할 외부 저장소의 경로를 구한다.
File dir = Environment.getExternalStorageDirectory();
String abPath = dir.getAbsolutePath();
//패키지명을 구한다.
String packageName = getPackageName();
path = abPath + "/android/data/"+packageName;
3 외부 저장소 체크
public void checkExternalDirectory()
{
// 외부저장소 경로가 있는지 확인, 없으면 생성
File file = new File(path);
if(file.exists() == false)
{
file.mkdir();
}
}
4 외부 저장소 저장
checkExternalDirectory();
FileOutputStream fos = new FileOutputStream(path+"/sd_file.dat");
DataOutputStream dos = new DataOutputStream(fos);
//데이터를 쓴다.
dos.writeInt(200);
dos.writeUTF("외부 문자열");
dos.flush();
dos.close();
5 외부 저장소 읽기
FileInputStream fis = new FileInputStream(path+"/sd_file.dat");
DataInputStream dis = new DataInputStream(fis);
int data1 = dis.readInt();
String data2 = dis.readUTF();
dis.close();
sdcard 의 data는 앱이 삭제되면 같이 같이 삭제 된다.
'Front-end > Android (안드로이드 앱 개발)' 카테고리의 다른 글
Android Studio , 리소스 & values 파일 (0) | 2020.08.16 |
---|---|
Android Studio , SQLite (0) | 2020.08.14 |
Android Studio , ListFragment & DialogFragment (0) | 2020.08.07 |
Android Studio , Service & Intent Service & Forground Service (0) | 2020.08.05 |
Android Studio , 시스템 메시지 : BroadcastReceiver [문자 메시지 읽기] (0) | 2020.08.02 |
댓글