Android 读取txt文档
<pre name="code" class="java">/***
* 将文本文件中的内容读成字符串
* ***/
private String getTextString(String pathandname, String code) {
String str = "";
try {
FileInputStream fis = new FileInputStream(pathandname);
int size = fis.available();
byte[] buffer = new byte[size];
fis.read(buffer);
fis.close();
str = new String(buffer, code);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return str;
}
/****
* 无法确切的判断出文档的编码是gbk或者是gb2312 获取指定文档的编码方式
* ***/
public static String getCode(String filepath) {
File file = new File(filepath);
System.out.println(file.exists() + "," + file.getAbsolutePath());
String code = "";
try {
FileInputStream fis = new FileInputStream(file);
BufferedInputStream in = new BufferedInputStream(fis);
in.mark(4);
byte[] first3bytes = new byte[3];
in.read(first3bytes);// 找到文档的前三个字节并自动判断文档类型。
in.reset();
if (first3bytes[0] == (byte) 0xEF && first3bytes[1] == (byte) 0xBB
&& first3bytes[2] == (byte) 0xBF) {// utf-8
code = "utf-8";
} else if (first3bytes[0] == (byte) 0xFF
&& first3bytes[1] == (byte) 0xFE) {
code = "unicode";
} else if (first3bytes[0] == (byte) 0xFE
&& first3bytes[1] == (byte) 0xFF) {
code = "utf-16be";
} else if (first3bytes[0] == (byte) 0xFF
&& first3bytes[1] == (byte) 0xFF) {
code = "utf-16le";
} else {
// 无法确切判断出gb2312的编码code = "GB2312";
code = "utf-8";
}
in.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return code;
}