Download presentation
Presentation is loading. Please wait.
Published byPhilippa Morrison Modified 6년 전
2
08. 파일 처리 제목
3
파일 처리 방식을 익힌다. SD카드의 파일 처리 방식을 배운다. 커스텀뷰의 작성법을 살펴본다.
5
1. 파일 처리 기본 ▶ 내장 메모리 파일 처리 개요 앱을 종료했다가 다음에 다시 실행할 때 사용한 곳부터 이어서 작업을 하고 싶은 경우가 있다. 이럴 때 내장 메모리에 파일을 저장하고 읽어오는 방식이 쓰인다. 내장 메모리의 저장 위치는 /data/data/패키지명/files 폴더
6
1. 파일 처리 기본 ▶ 내장 메모리 파일 처리 간단한 예제 (1/2)
7
1. 파일 처리 기본 ▶ 내장 메모리 파일 처리 간단한 예제 (2/2)
8
1. 파일 처리 기본 ▶ 내장 메모리 파일 처리 [실습8-1] 간단 일기장 만들기 (1/7)
날짜를 선택하고 그 날짜에 일기가 없으면 새로 쓰고, 그 날짜에 쓴 일기가 있다면 일기를 보여주는 앱을 만들자. 프로젝트 정보 프로젝트 이름 : Project8_1 패키지 이름 : com.cookandroid.project8_1 빌드 SDK : Goolge API 15 또는 16 Minimum Required SDK : API 15 또는 16 액티비티이름 : Project8_1Activity 레이아웃 이름 : main 타이틀 : Project8_1
9
1. 파일 처리 기본 ▶ 내장 메모리 파일 처리 [실습8-1] 간단 일기장 만들기 (2/7) 화면 디자인
데이트피커, 에디트텍스트, 버튼을 한 개씩 생성한다. 각 위젯의 id는 datePicker1, edtDiary, btnWrite로 한다.
10
1. 파일 처리 기본 ▶ 내장 메모리 파일 처리 [실습8-1] 간단 일기장 만들기 (3/7)
Java 코딩 1 : 위젯 변수 선언 3개 위젯에 대응할 위젯 변수 3개 파일이름을 지정할 문자열 변수 1개 위젯 변수에 main.xml의 위젯을 대입
11
1. 파일 처리 기본 ▶ 내장 메모리 파일 처리 [실습8-1] 간단 일기장 만들기 (4/7)
Java 코딩 2 : 데이트피커 설정 Calendar 클래스를 이용해서 오늘 날짜의 연월일을 구한 후에 데이트피커를 초기화 데이트피커의 날짜가 변경되면, 변경된 날짜에 해당하는 일기파일(연_월_일.txt)의 내용을 에디트텍스트에 보여줌
12
1. 파일 처리 기본 ▶ 내장 메모리 파일 처리 [실습8-1] 간단 일기장 만들기 (5/7) Java 코딩 3
현재 날짜의 파일(연_월_일.txt)을 읽어 일기의 내용을 반환하는 readDiary( ) 메소드를 완성
13
1. 파일 처리 기본 ▶ 내장 메모리 파일 처리 [실습8-1] 간단 일기장 만들기 (6/7) Java 코딩 4
제일 아래 버튼을 클릭했을 때 동작하는 내용을 onCreate( ) 내부에 완성
14
1. 파일 처리 기본 ▶ 내장 메모리 파일 처리 [실습8-1] 간단 일기장 만들기 (7/7) 프로젝트 실행
프로젝트를 실행 후, 몇 개 날짜에 일기를 쓰고 DDMS에서 확인
15
1. 파일 처리 기본 ▶ 내장 메모리 파일 처리 [직접 풀어보기 8-1]
[실습 8-1]을 처음 실행하면 해당 날짜의 일기가 있어도 나오지 않는다. 처음 실행할 때부터 실행한 날짜의 일기가 있으면 에디트텍스트에 일기를 보여주고 버튼을 <수정하기>로 만들자. 일기가 없으면 에디트텍스트에 “일기 없음”이라는 힌트가 나오고 버튼은 <새로 저장>이 되도록 하자.
16
1. 파일 처리 기본 ▶ raw 폴더 파일 처리 raw폴더 파일 처리 개요
프로젝트의 /res/raw 폴더에 필요한 파일을 저장해서 사용하는 방법. Java 소스에서 openRawResource() 메소드를 사용해서 접근할 수 있으며, InputStream 클래스를 사용 프로젝트의 /res/raw 폴더는 프로젝트에 포함된 폴더이므로 읽기 전용으로만 사용 가능 예제를 위해서 res 폴더 아래 raw 폴더를 생성해 놓고, 아무 내용이나 입력한 *.txt 파일을 하나 복사한다.
17
1. 파일 처리 기본 ▶ raw 폴더 파일 처리 예제
18
2. 파일 처리 응용 개요 MP3 파일을 SD카드에 저장하여 음악플레이어에서 실행할 때.
AVD의 가상의 SD카드는 이클립스 메뉴 [Windows]-[AVD Manager]를 실행한 후 확인할 수 있다. (1장에서 생성했음)
19
2. 파일 처리 응용 ▶ SD카드의 파일 간단히 읽기 SD카드 파일 읽기 준비
내장 메모리에서 파일을 읽을 때와 별 차이가 없음. 먼저 DDMS에서 /mnt/sdcard 폴더에 적당한 텍스트 파일을 하나 올려(Push) 놓는다.
20
2. 파일 처리 응용 ▶ SD카드의 파일 간단히 읽기 SD 카드 파일 읽기 예제
21
2. 파일 처리 응용 ▶ SD카드에 폴더 및 파일 생성하기
개요 SD카드의 파일을 좀 더 정밀하게 처리하기 위해서는 Environment 클래스의 정적 메소드를 이용해 SD카드의 동작 여부 및 관련 폴더 경로를 구한다. AndroidManifest.xml 파일에 SD카드에 쓰기가 가능하도록 퍼미션을 지정해주어야 한다.
22
2. 파일 처리 응용 ▶ SD카드에 폴더 및 파일 생성하기
23
2. 파일 처리 응용 ▶ 특정 폴더의 하위 폴더 및 파일 목록
예제
24
2. 파일 처리 응용 [실습8-2] 간단 이미지 뷰어 만들기 (1/10)
SD카드의 특정 폴더의 이미지 파일을 보여주는 간단한 이미지 뷰어를 만들자. 프로젝트 정보 프로젝트 이름 : Project8_2 패키지 이름 : com.cookandroid.project8_2 빌드 SDK : Goolge API 15 또는 16 Minimum Required SDK : API 15 또는 16 액티비티이름 : Project8_2Activity 레이아웃 이름 : main 타이틀 : Project8_2
25
2. 파일 처리 응용 [실습8-2] 간단 이미지 뷰어 만들기 (2/10) 커스텀 위젯 생성
커스텀 위젯을 직접 만들어 main.xml에 넣어 사용.
26
2. 파일 처리 응용 [실습8-2] 간단 이미지 뷰어 만들기 (3/10) 커스텀 위젯 Java 코드 1 자동완성된 코드
27
2. 파일 처리 응용 [실습8-2] 간단 이미지 뷰어 만들기 (4/10)
커스텀 위젯 Java 코드 2 : onDraw( ) 메소드를 오버라이드
28
2. 파일 처리 응용 [실습8-2] 간단 이미지 뷰어 만들기 (5/10) Java 코딩 1 : 위젯 변수 선언
3개 위젯에 대응할 위젯 변수 3개 파일이름을 지정할 문자열 변수 1개 위젯 변수에 main.xml의 위젯을 대입
29
2. 파일 처리 응용 [실습8-2] 간단 이미지 뷰어 만들기 (6/10) 화면 디자인 가로 레이아웃에 버튼 2개를 생성
앞에서 생성한 커스텀 위젯인 myPictureView를 생성 위젯의 이름은 btnPrev, btnNext, myPictureView1
30
2. 파일 처리 응용 [실습8-2] 간단 이미지 뷰어 만들기 (7/10) 그림 파일을 SD 카드에 복사
31
2. 파일 처리 응용 [실습8-2] 간단 이미지 뷰어 만들기 (8/10) Java 코딩 1
main.xml의 3개 위젯에 대응할 위젯 변수 3개 SD카드에서 읽어올 이미지 파일 배열과 파일명 문자열 변수 위젯 변수에 main.xml 위젯 대입
32
2. 파일 처리 응용 [실습8-2] 간단 이미지 뷰어 만들기 (9/10) Java 코딩 2
SD카드의 /mnt/sdcard/pictures 폴더에서 파일을 읽어오고, 첫 번째 파일을 커스텀 위젯에 출력
33
2. 파일 처리 응용 [실습8-2] 간단 이미지 뷰어 만들기 (10/10) Java 코딩 3
버튼을 클릭하면 동작하는 리스너를 정의
34
2. 파일 처리 응용 [직접 풀어보기 8-2] [실습 8-2]를 다음과 같이 수정하자.
버튼 사이에 “현재그림번호/전체그림개수” 텍스트뷰가 나타나도록 한다. 토스트 메시지를 없애고, 첫 번째 그림인데 <이전 그림>을 클릭하면 마지막 그림이, 마지막 그림인데 <다음 그림>을 클릭하면 첫 번째 그림이 나오도록 한다.
35
내장 메모리에서 파일을 사용하는 일반적인 절차
내장메모리의 경로는 /data/data/패키지명/files 폴더 프로젝트의 /res/raw 폴더에 필요한 파일을 저장해서 사용할 수 있으나, 읽기전용으로만 가능 DDMS(Dalvik Debug Monitoring Service)는 AVD나 실제 안드로이드폰 내의 폴더와 파일을 접근하는 기능을 제공
36
SD카드의 기본적인 경로는 "/sdcard"를 사용하며, DDMS에서는 "/mnt/sdcard"에 접근하면 된다.
SD카드의 파일을 좀 더 정밀하게 처리하기 위해서는 Environment 클래스의 정적 메소드를 이용해야 한다. SD카드에 쓰기 위해서는 AndroidManifest.xml에 퍼미션을 추가해야 한다. 지정한 폴더의 하위 폴더 및 파일의 목록은 File.listFiles() 메소드를 사용한다. 커스텀 위젯을 만들려면 먼저 Java코드로 작성한 후에, main.xml에서 <패키지명.클래스명> 형식을 사용하면 된다.
Similar presentations