Android实战开发篇 txt文件内容转码,解决乱码问题
Posted 彭老希
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android实战开发篇 txt文件内容转码,解决乱码问题相关的知识,希望对你有一定的参考价值。
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.List;
/**
* @author : xiaohu
* @ClassName : FileTranscodingUtil.java
* @Function : 文件内容转码工具类
* @Description :
* @Idea :
* {@link }
* @Encourage :Do everything you can right now, and then decide.
* 全力以赴,历而后择。
*/
public class FileTranscodingUtil {
/**
* 转换代码并获取文本
*
* @param filepath 文件路径
* @return 返回转码内容
*/
public static String convertCodeAndGetText(String filepath) {
File file = new File(filepath);
BufferedReader reader;
String text = "";
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) {
reader = new BufferedReader(new InputStreamReader(in, "utf-8"));
} else if (first3bytes[0] == (byte) 0xFF && first3bytes[1] == (byte) 0xFE) {
reader = new BufferedReader(new InputStreamReader(in, "unicode"));
} else if (first3bytes[0] == (byte) 0xFE && first3bytes[1] == (byte) 0xFF) {
reader = new BufferedReader(new InputStreamReader(in, "utf-16be"));
} else if (first3bytes[0] == (byte) 0xFF && first3bytes[1] == (byte) 0xFF) {
reader = new BufferedReader(new InputStreamReader(in, "utf-16le"));
} else {
reader = new BufferedReader(new InputStreamReader(in, "GBK"));
}
String str = reader.readLine();
while (str != null) {
text = text + str;
// text = text + str + "/n";
str = reader.readLine();
}
reader.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return text;
}
}
以上是关于Android实战开发篇 txt文件内容转码,解决乱码问题的主要内容,如果未能解决你的问题,请参考以下文章
JAVA利用commons.net.ftp.FTPClient的storeFileStream方法TXT文件上传. 已经转码UTF-16LE,上传后内容乱码
Android实战开发篇 读取Word文档的 doc 与 docx 格式文本内容(全网最详细!!!)
Android实战开发篇 解析读取复杂WordExcelPPT