java文件读取内容转码

发布网友

我来回答

3个回答

热心网友

读取的文件流如果是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,如果上面的强制转换不成功,依次进行这些格式的尝试,肯定是可以解决问题的。

热心网友

打散重装就好了。
/**
* 编码:输入一个字符串,返回编码后的字符串
*
* @author qinzy
* @param str
* @return
*/
public static String encode(String str) {
if (str == null || "".equals(str))
return str;
try {
str = URLEncoder.encode(str, "UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
return str;
}
/**
* 编码:输入一个字符串,返回两次编码后的字符串
*
* @author qinzy
* @param str
* @return
*/
public static String encode2(String str) {
if (str == null || "".equals(str))
return str;
try {
str = URLEncoder.encode(URLEncoder.encode(str, "UTF-8"), "UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
return str;
}
/**
* 解码:输入一个字符串,返回解码后的字符串
*
* @author qinzy
* @param str
* @return
*/
public static String decode(String str) {
if (str == null || "".equals(str))
return str;
try {
str = URLDecoder.decode(str, "UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
return str;
}

热心网友

有图吗?把你的代码拿出来看看

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com