android读取SDCard任意路径下的文件
16lz
2021-01-23
文件不能太大否则会报内存溢出
import java.io.FileInputStream;import org.apache.http.util.EncodingUtils;import android.app.Activity;import android.os.Bundle;import android.widget.TextView;public class ReadAnythingPathActivity extends Activity { TextView textView; // 这个是读取SDCard任意路径下的文件 /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); textView = (TextView) findViewById(R.id.tvtext); String txt = ""; try { // 文件路径 String filename = "/sdcard/ansi1.txt"; // 或 String filename = "mnt/sdcard/ansi1.txt"; // 文件流读取文件 FileInputStream fin = new FileInputStream(filename); // 获得字符长度 int length = fin.available(); // 创建字节数组 byte[] buffer = new byte[length]; // 把字节流读入数组中 fin.read(buffer); // 关闭文件流 fin.close(); // 获得编码格式 String type = codetype(buffer); // 使用编码格式获得内容 txt = EncodingUtils.getString(buffer, type); textView.setText(txt); } catch(Exception e) { // TODO: handle exception } } private String codetype(byte[] head) { String type = ""; byte[] codehead = new byte[3]; System.arraycopy(head, 0, codehead, 0, 3); if(codehead[0] == -1 && codehead[1] == -2) { type = "UTF-16"; } else if(codehead[0] == -2 && codehead[1] == -1) { type = "UNICODE"; } else if(codehead[0] == -17 && codehead[1] == -69 && codehead[2] == -65) { type = "UTF-8"; } else { type = "GB2312"; } return type; }}
版权声明:本文为博主原创文章,未经博主允许不得转载。
更多相关文章
- Android和IOS录制mp3语音文件的方法
- android如何获取SD卡上的多媒体文件
- AndroidManifest.xml文件详解(uses-sdk)
- 修改 android 手机 hosts 文件的方法
- android 使用post方式上传文件
- Android NDK学习(5)调用.so文件
- Android使用GET_CONTENT Action获取打开相应文件类型的应用