讀取android項目中的文件 文件不能太大不然會報內存溢出java
import java.io.InputStream; import org.apache.http.util.EncodingUtils; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class ReadActivity extends Activity { /** Called when the activity is first created. */ TextView tvtext; // 這些文件只讀沒法寫入 // 不須要權限 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); tvtext = (TextView) findViewById(R.id.tvtext); String res = ""; try { // 讀取raw文件夾中的txt文件,將它放入輸入流中 // InputStream in = getResources().openRawResource(R.raw.ansi); // 讀取assets文件夾中的txt文件,將它放入輸入流中 InputStream in = getResources().getAssets().open("ansi.txt"); // 得到輸入流的長度 int length = in.available(); // 建立字節輸入 byte[] buffer = new byte[length]; // 放入字節輸入中 in.read(buffer); // 得到編碼格式 String type = codetype(buffer); // 設置編碼格式讀取TXT res = EncodingUtils.getString(buffer, type); // 關閉輸入流 in.close(); tvtext.setText(res); } catch(Exception e) { // TODO: handle exception } } private String codetype(byte[] head) { byte[] codehead = new byte[4]; // 截取數組 System.arraycopy(head, 0, codehead, 0, 4); String code = ""; if(head[0] == -1 && head[1] == -2) { code = "UTF-16"; } else if(head[0] == -2 && head[1] == -1) { code = "Unicode"; } else if(head[0] == -17 && head[1] == -69 && head[2] == -65) code = "UTF-8"; else { code = "gb2312"; } return code; } }
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。android