[Android] 파일의 읽고 쓰기

파일의 읽고 쓰기.

1. 문자열 바이트 배열 변환
: 문자열을 파일로 저장할 때에는 바이트 배열로 변환한 후 저장해야 하고,
문자열을 바이트 배열로 변환하려면 String 클래스의 getByte() 메소드를 사용해야 한다.
byte[] getBytes()
기능 : 바이트 배열로 변환
변환값 : 바이트 배열

2. 바이트 배열의 문자열 변환
: 바이트 배열을 파일로부터 읽은 후 문자열로 번달하려면 String 클래스의 생성자를 사용한다.
String(byte[] data)
기능 : String  클래스의 생성자
인수 : data 바이트 배열

String(byte[] data, String encoding)
기능 : String 클래스 생성자
인수 : data        바이트 배열
            encoding 인코딩
- 인코딩은 [UTF-8]을 지정.

3. 파일 출력 스트림의 개방
: 스트림의 바이트 배열을 파일로 쓰려면, 파일 출력 스트림을 열고 쓰기 처리를 한 후 마지막으로 닫는다.
파일 출력 스트림을 열려면 Context 클래스의 openFileOutput()메소드를 사용한다.
OutputStream openFileOutput(String fileName, int mode)
기능 : 파일의 열기
인수 : fileName 파일명
           mode        모드
반환값 : 출력 스트림
: 파일명으로는 저장할 파일명을 지정한다. 절대경로는 /data/data/패키지명/files/파일명 이 된다.  모드는 다음의 정수를 지정한다. 여기서는 Contenxt.MODE_PRIVATE 로 파일 생성을 했다.
모드기능
Context.MODE_APPEND기존 파일 단말기로부터 추가 쓰기
Context.MODE_PRIVATE다른 어플리케이션으로부터는 접근불가
Context.MODE_WORLD_READABLE다른 어플리케이션으로부터 읽기 가능
Context.MODE_WORLD_WRITEABLE다른 어플리케이션으로부터 쓰기 가능

4. 바이트 배열의 쓰기
 : 바이트 배열을 출력 스트림에 쓰려면 OutputStream 클래스의 write() 메소드를 사용한다.
void write(byte[] data, int off, int len)
기능 : 바이트 데이터 data의 off 번째부터 len 만큼 쓰기
인수 : data     바이트 데이터
           off         데이터의 시작 위치
           len        쓰기 바이트 수
void write(byte[] data)
기능 : 바이트 데이터 data의 모든 데이터 쓰기
인수 : data     바이트 데이터
void write(int data)
기능 : 1 바이트의 바이트 데이터 쓰기
인수 : data     바이트 데이터( 0 ~ 255 )

: 인수는 int 형이지만, 0 ~ 255 값만을 지정한다.

5. 파일 출력 스트림의 닫기
 : 파일 출력 스트림을 닫으려면 OutputStream 클래스의 close() 메소드를 사용한다.
void close()
기능 : 출력 스트림 닫음

6. 파일 입력 스트림의 개방
 : 스트림의 개방 파일로부터 바이트 배열을 읽으려면 파일 입력 스틀미을 열고 읽기 처리를 실행한 후 마지막으로 닫는다. 파일입력 스트림을 열려면 Context 클래스의 openFileInput() 메소드를 사용한다.
OutputStream openFileInput(String fileName, int mode)
기능 : 파일 입력 스트림의 열기
인수 : fileName    파일명
           mode          모드

7. 바이트 배열의 읽기
 : 바이트 배열의 읽기를 실행하려면 InputStream 클래스의 read() 메소드를 사용한다.
int read(byte[] data)
기능 : 바이트 배열의 읽기
인수 : data     바이트 배열
반환값 : 읽은 바이트 크기
 : 인수로 전달한 바이트 배열에 읽은 데이터가 저장되고, 반환값에는 읽은 바이트 크기가 전달된다. 단, 바이트 배열보다 큰 바이트 데이터는 읽을 수 없다. 거기에서 읽은 바이트크기가 0이 될 때까지 read() 메소드를 반복하여 호출하면서 가변 길이 바이트 배열 ByteArrayOutputStream 클래스에 쓰고 있다.

8. 파일 입력 스트림의 닫기
 : 파일 입력 스트림을 닫기 위해서는 Input Stream 클래스의 close() 메소드를 사용한다.
void close()
기능 : 파일 입력 스트림의 닫기

9. ByteArrayOutputStream 객체의 바이트 배열화
 : ByteArrayOutputStream 객체에서 갖고 있는 바이트 데이터를 byte[] 형의 값으로 얻으려면 ByteArrayOutputStream 클래스의 toByteArray() 메소드를 사용한다.
byte[] toByteArray()
기능 : 바이트 배열 구하기
반환값 : 바이트 배열
사용자 삽입 이미지사용자 삽입 이미지

* DDMS 의 File Explorer
   : DDMS의 File Explorer 를 사용하면, 저장되어 있는 파일을 확인 할 수 있다.
     1. Eclipse  메뉴중 [Window]-[Open Perspective]-[DDMS] 를 선택.
     2. Devices 에서 단말기를 선택한다(에뮬레이터의 경우는 emulator-XXXX).
     3. File Explorer 에서 [data]-[data]-[패키지명]-[files]-[파일명] 을 선택.
     4. 우측 위의 [Pull a file from the device] 버튼을 통해 파일 대화상자를 열고 파일을 컴퓨터에 저장할수 있다. [Put File on Device] 버튼을 통해 컴퓨터로부터 파일을 추가할 수 있고, [삭제] 버튼을 통해 파일 삭제도 가능하다.

 
[SOURCE]
package com.froglamb.fileex;

more..


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2010/10/26 13:39 2010/10/26 13:39
, ,
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/5588

Trackback URL : http://tcbs17.cafe24.com/tc/trackback/5588

« Previous : 1 : ... 25 : 26 : 27 : 28 : 29 : 30 : 31 : 32 : 33 : ... 91 : Next »

블로그 이미지

- 홍반장

Archives

Recent Trackbacks

Calendar

«   2024/11   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Statistics Graph

Site Stats

Total hits:
243754
Today:
105
Yesterday:
776