java文件读取内容转码

java文件读取内容转码,第1张

读取的文件流如果是read(读取字节流的时候,中文就会是乱码)方法,所以现在全都是听过readline方式进行的读取。举例:

可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。

BufferedReader bre = null

try {

String file = "D:/test/test.txt"

bre = new BufferedReader(new FileReader(file))//此时获取到的bre就是整个文件的缓存流

while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环

{

System.out.println(str)//原样输出衡搏读到的内容

};

bre.close(),//关闭流,否则bre流会一直存在,直到程序慎拿运行结束。

除此之外,java文件读取的时候有中文就很出现乱码,通常获取到的文件中通常都是“iso8859-1”格式,需要转换为“UTF-8”格式。

如:String str = new String(str.getByte("iso8859-1"),"UTF-8")进行下强制转换后在进行读取即可。

备注:通常格式有GBK、UTf-8、iso8859-1、GB2312,如果宽拦搭上面的强制转换不成功,依次进行这些格式的尝试,肯定是可以解决问题的。

方法一:

思路:先转为Unicode,然后转为GBK

String utf8 = new String(t.getBytes( "UTF-8"))  

System.out.println(utf8)  

String unicode = new String(utf8.getBytes(),"UTF-8")   

System.out.println(unicode)  

String gbk = new String(unicode.getBytes("GBK"))  

  

System.out.println(gbk)

方法二:

public static void main(String[] args) {

        String str="字符串编码转换"

        try {

          byte[] temp=str.getBytes("utf-8")//这里写原编码方式

       轮瞎    磨派 byte[] newtemp=new String(temp,"utf-8").getBytes("gbk"腊游空)//这里写转换后的编码方式

            String newStr=new String(newtemp,"gbk")//这里写转换后的编码方式

            System.out.println(newStr)

        } catch (UnsupportedEncodingException e) {

            // TODO Auto-generated catch block

            e.printStackTrace()

        }

    }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12219724.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存