티스토리 뷰
목차
반응형
안드로이드 txt 읽기 예제, InputStream 사용 (한글 깨짐 해결)
아래 안드로이드 TXT 예제(InputStream 사용)에서는 임의 XML 파일 이외에도 미가공 파일을 사용할 수 있다. res / 밑에 raw폴더와 asset 폴더에 오디오, 비디오, text 파일을 저장하고 해당 파일을 읽을 수 있다.
InputStream을 이용해 raw 리소스 읽어 들이는 형식과 asset에서 읽어 들이는 형식으로 몇 개 짜보았다. main Keword는 InputStream으로 읽어서, 1byte씩 조각내서 쓴다.
한글 때문에 뻑나면, StreamReader로 해당 charset에 맞춰서 읽는다. String이나 StringBuffer나 StringBuilder 모두 사용해봤는데, 그다지 차이는 없는 듯.
[안드로이드 txt 읽기 예제, InputStream 사용 (한글 깨짐 해결)
[안드로이드 예제 InputStream] 1. asset road resource
1 2 3 4 5 6 7 8 9 10 11 12 | private String getStringAssetFile(Activity activity) throws Exception { AssetManager as = activity.getAssets(); InputStream is = as.open("text1.txt"); // InputStreamReader isr = new // InputStreamReader(as.open("text1.txt"),"EUC-KR"); String text = convertStreamToString(is); is.close(); return text; } | cs |
[안드로이드 예제 InputStream] 2. inputStream -> String
1 2 3 4 5 6 7 8 9 10 | private String convertStreamToString(InputStream is) throws IOException { ByteArrayOutputStream bs = new ByteArrayOutputStream(); int i = is.read(); while (i != -1) { bs.write(i); i = is.read(); } return bs.toString(); } | cs |
[안드로이드 예제 InputStream] 3. raw road resource -> String-> wirte String Builder
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | private String getStringFromRawFile(Activity activity) throws IOException { Resources r = activity.getResources(); InputStream is = r.openRawResource(R.raw.text2); InputStreamReader r2 = new InputStreamReader(is); StringBuilder str = new StringBuilder(); ByteArrayOutputStream bs = new ByteArrayOutputStream(); while (true) { int i = r2.read(); if (i == -1) break; else { char c = (char) i; str.append(c); bs.write(c); } } // StringBuilder sb = sb.append(c); // Str ing myText = is.close(); return bs.toString(); } | cs |
안드로이드 txt 읽기 예제, InputStream 사용 (한글 깨짐 해결)
반응형