读书人

java BufferedReader 读取文件 乱码

发布时间: 2011-12-31 23:50:30 作者: rapoo

java BufferedReader 读取文件 乱码,求解

Java code
File file = new File("D:/aa.cer");InputStreamReader isr;isr = new InputStreamReader(new FileInputStream(file),"utf-8");String line=null;while((line=bf.readLine())!=null){    System.out.print(line);}

编码设置过还是乱码,求解

[解决办法]
Java code
File file = new File("D:/aa.cer");        FileReader fr=null;        try {            fr = new FileReader(file);            char[] temp=new char[(int) file.length()];            fr.read(temp);            fr.close();            System.out.println(new String(temp));        } catch (FileNotFoundException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }
[解决办法]
你确定你的D:/aa.cer文件时utf-8编码的吗?

[解决办法]
探讨
不知道文件是什么编码的?这样要怎么解决的

[解决办法]
可以测试文件的编码,然后根据编码来打开文件的:http://blog.csdn.net/wula0010/article/details/6862696
[解决办法]
分别调用下面的两个方法,看看输出什么

Java code
public static void readGBKCodingFile(String fileName) {//读取GBK文件的内容        BufferedReader br = null;        try {            br = new BufferedReader(new InputStreamReader(new FileInputStream(                    fileName), "gbk"));            String line = null;            while ((line = br.readLine()) != null) {                System.out.println(line);            }        } catch (Exception e) {        } finally {            try {                if (br != null)                    br.close();            } catch (IOException e) {            }        }    }            public static void readUTFCodingFile(String fileName) {//读取UTF-8文件的内容        BufferedReader br = null;        try {            br = new BufferedReader(new InputStreamReader(new FileInputStream(                    fileName), "utf-8"));            String line = null;            while ((line = br.readLine()) != null) {                System.out.println(line);            }        } catch (Exception e) {        } finally {            try {                if (br != null)                    br.close();            } catch (IOException e) {            }        }    }
[解决办法]

你想转化文件格式,试试下面的两个方法
Java code
    public static void convertGBKFileToUTFFile(String srcFileName, String destFileName) {//把GBK文件转换为UTF文件        BufferedReader br = null;        ;        BufferedWriter bw = null;        try {            br = new BufferedReader(new InputStreamReader(new FileInputStream(                    srcFileName), "gbk"));            bw = new BufferedWriter(new OutputStreamWriter(                    new FileOutputStream(destFileName), "UTF-8"));            String line = null;            while ((line = br.readLine()) != null) {                bw.write(line);                bw.newLine();            }        } catch (Exception e) {        } finally {            try {                if (br != null)                    br.close();                if (bw != null)                    bw.close();            } catch (IOException e) {            }        }    }        public static void convertUTFFileToGBKFile(String srcFileName, String destFileName) {//把GBK文件转换为UTF文件        BufferedReader br = null;        ;        BufferedWriter bw = null;        try {            br = new BufferedReader(new InputStreamReader(new FileInputStream(                    srcFileName), "utf-8"));            bw = new BufferedWriter(new OutputStreamWriter(                    new FileOutputStream(destFileName), "gbk"));            String line = null;            while ((line = br.readLine()) != null) {                bw.write(line);                bw.newLine();            }        } catch (Exception e) {        } finally {            try {                if (br != null)                    br.close();                if (bw != null)                    bw.close();            } catch (IOException e) {            }        }    } 


[解决办法]
那用gb2312试试喏,或者用字节流试试。
[解决办法]
cer不是文本文吧?
[解决办法]

探讨

不是文本文档,是个证书文件,FileInputStream用fileReader也试过了,就是不能解决的

[解决办法]
探讨

引用:
引用:

引用:
引用:

不是文本文档,是个证书文件,FileInputStream用fileReader也试过了,就是不能解决的


文件面存的不是字符串,出的,直接出byte就可以了

……

[解决办法]
是文本文件么?证书文件...是不是加密了所以乱码?先用记事本或者UE,editplus等文本编辑工具看打开是否乱码,如果不是乱码,用另存为查看文件编码,然后代码换成相应编码,如果是乱码的话,那估计就是加密了.

读书人网 >J2SE开发

热点推荐