티스토리 뷰

반응형

xml파일을 byte 또는 String으로 가져올 때 정리해보았다.

"file:///android_asset/filename.jpg" 등으로는 이제 불러올 수 없다.

java.io.FileNotFoundException 발생


사용할 때 String 또는 byte일 경우 서로 변환해서 쓰면 되겠지 했지만 원하는 결과를 얻을 수 없었다.
UTF-8, EUC-KR등의 캐릭터셋을 적용해도 동일 했다.

// byte로 가져올 때

1
2
3
4
5
6
7
8
9
10
11
        try {
            InputStream is = getAssets().open("applSample.xml");
 
            int size = is.available();
            byte[] signXml = new byte[size];
 
            is.read(signXml);
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
cs

// 문자열로 가져올 때

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private String getAssetsFile(String filename) {
   AssetManager am = activity.getResources().getAssets();
   StringBuffer response = new StringBuffer();
   try {
       InputStream inputStream = am.open(filename);
       BufferedReader rd = new BufferedReader(new InputStreamReader(inputStream));
       String line = null;
       while ((line = rd.readLine()) != null) {
           response.append(line);
       }
   } catch (IOException e) {
       UtilCommon.log(TAG, "IOException");
   }
   return response.toString();
}
 
cs
반응형
댓글
반응형