杨震 发表于 2012-9-11 11:29
我文档里面保存的是UTF-8,就是开头是乱的
比如说文件里是:严严严
读取utf-8的格式的文件内容,首位会多一个?,其实你只要在读取之前先读一个字符就可以了:
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.Reader;
- import java.io.UnsupportedEncodingException;
- public class FileWriterDemo {
- public static void main(String[] args) {
- // 使用FileRead的read方法读入并输出每次读的数据十六进制表示
- Reader p1 = null;
- try {
- p1 = new InputStreamReader(new FileInputStream("D:/文档.txt"),
- "utf-8");
- int p11 = 0;
- char[] cs = new char[2];
- // 这是先读一个字符
- p1.read();
- while ((p11 = p1.read(cs)) != -1) {
- String str = new String(cs, 0, p11);
- System.out.print(str);
- }
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try {
- p1.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
复制代码 |