Android 讀取assets文件下的txt文件

cd33 10年前發布 | 3K 次閱讀 Java Android

android 讀取assets文件下的txt文件,解決了讀取txt文件的亂碼問題;


package com.example.com.scrollview;

import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader;

import android.app.Activity; import android.content.res.AssetManager; import android.os.Bundle; import android.util.Log; import android.widget.TextView;

public class MainActivity extends Activity {

private TextView novel;

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

novel = (TextView) findViewById(R.id.novel); AssetManager am=getAssets(); try { InputStream is=am.open("zx.txt");

String code=getCode(is); is=am.open("zx.txt"); BufferedReader br=new BufferedReader(new InputStreamReader(is,code));

String line=br.readLine(); int i=0; while(line!=null){ novel.append(line+"\n"); line=br.readLine(); i++; if(i==200){ break; } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }

// novel.setText(readNovel());

}

public String getCode(InputStream is){ try { BufferedInputStream bin = new BufferedInputStream(is);
int p;

p = (bin.read() << 8) + bin.read();

String code = null;

switch (p) {
case 0xefbb:
code = "UTF-8";
break;
case 0xfffe:
code = "Unicode";
break;
case 0xfeff:
code = "UTF-16BE";
break;
default:
code = "GBK";
} is.close(); return code; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
return null; } }</pre>

 本文由用戶 cd33 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!