티스토리 뷰
자바파일에서 참고하는 속성파일을 txt로 저장해두고 그걸 읽어들여서 프로그램을 실행하고 싶었는데
그게 생각처럼 쉽게 되질 않았다.
DDMS 밑에 폴더를 만들어서 파일을 넣어놓고 쓰라는 사람도 있었는데,
이건 솔직히 좀 불편한 방법같고..
뭔가 쉬운게 있을것 같았는데
검색하다 맘에 드는 방법이 있어서 그대로 해보니 정말 간단히 풀렸다.
res/raw 밑에 소문자와 숫자로만 이루어진 파일명으로 파일을 생성해두고
그 파일의 위치는 R에서 자동으로 참조하므로
그 파일을 읽어서 사용하는것이다.
내가 읽어들이려고 만든 파일은 한 줄에 7개의 숫자들이 탭으로 분리되어 나열된 파일이다.
(예)
....
10 14 18 20 23 30 41
6 12 17 18 31 32 21
4 5 6 8 17 39 25
5 13 17 18 33 42 44
7 8 27 29 36 43 6
2 4 21 26 43 44 16
4 5 7 18 20 25 31
...
이런식이다.
1. 읽어들일 파일에 대한 정보 담기
보통은 File이라는 객체를 생성해서 담아주는데
안드로이드에선 Activity 클래스 내에서 openRawResource 메소드와 R을 활용하는 방식으로 쓴다.
//File file = new File( "winningnumbers.txt"); InputStream is = getResources().openRawResource(R.raw.winningnumbers);
2. 파일에서 정보를 읽어들여 BufferedReader에 담기
보통은 생성된 파일 정보를 이용해서 BufferedReader로 만들어 읽어들이는데,
FileReader를 쓰는대신 위에서 생성된 InputStream객체를 이용해서 BufferedReader를 생성했다.
try { //BufferedReader br = new BufferedReader(new FileReader(file.getAbsoluteFile())); InputStreamReader isr = new InputStreamReader( is); BufferedReader br = new BufferedReader( isr); String line = ""; String tempArray[] = new String[7]; totalCount = 0; int tempInt = 0; while ((line = br.readLine()) != null) { totalCount += 1; tempArray = line.split("\t"); for ( int i = 0; i < 7; i++) { tempInt = Integer.parseInt(tempArray[ i ]) - 1; if ( numbers [ tempInt ][0] == tempInt + 1) { // setting count numbers [ tempInt ][1] += 1; } } } br.close(); } catch( FileNotFoundException fnfe) { fnfe.getStackTrace(); System.out.println( fnfe.getMessage()); } catch( IOException ie) { ie.getStackTrace(); } catch( Exception e) { System.out.println( e.getMessage()); }
처음에 res/raw 밑에 파일을 두는 방식을 몰랐을때는 계속 파일을 찾지못해
FileNotFoundException 으로 원하는 결과값이 나오지 않았었는데
지금은 잘 나온다. 히힛..
[참고]
'Computer > Android' 카테고리의 다른 글
[Android] conn.getResponseCode()에서 에러 (0) | 2013.10.02 |
---|---|
[Android] 에뮬레이터의 Adb connection Error (0) | 2013.08.23 |
[Android] VM 에뮬레이터에 앱 (.apk)설치하기 (0) | 2013.08.16 |
[Android] VM 에뮬러이터를 이클립스에서 사용하기 (0) | 2013.08.15 |
[Android] VirtureBox에 에뮬레이터 설치하기 (0) | 2013.08.15 |
- Total
- Today
- Yesterday
- 사업자등록
- 새희망씨앗 피해자
- 한남동세일
- 와코마리아
- 라고스
- 인도
- 와코마리아 스웨터
- 단체소송
- 팸세일
- 페밀리세일
- 패밀리세일
- VirtureBox
- 와코마리아팸세일
- 6월 패밀리세일
- UML
- java
- 기부피해
- 마라탕 #마라상궈 #마라탕재료 #쉽게만드는마라탕 #중딩입맛 #마라탕잡탕
- 기부사기
- 와코마리아한남동
- eclipse
- javascript
- 안드로이드
- 해외직구
- 부드러운맛
- 나이지리아
- 홈택스
- MySQL
- 새희망씨앗
- 리터너블
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |