可以通过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,如果宽拦搭上面的强制转换不成功,依次进行这些格式的尝试,肯定是可以解决问题的。
java不同编码之间进行转换,都需要使用unicode作为中转。
String str = "任意字符串"
str = new String(str.getBytes("gbk"),"utf-8")
备注说明:
str.getBytes("UTF-8")意思是以UTF-8的编码取得字节
new String(XXX,"UTF-8")意思是以UTF-8的编码生成字符串
举例:
public static String getUTF8XMLString(String xml) {
// A StringBuffer Object
StringBuffer sb = new StringBuffer()
sb.append(xml)
String xmString = ""
String xmlUTF8=""
try {
xmString = new String(sb.toString().getBytes("UTF-8"))
xmlUTF8 = URLEncoder.encode(xmString, "UTF-8")
System.out.println("utf-8 编码:" + xmlUTF8)
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
// return to String Formed
return xmlUTF8
扩展资料:
UTF-8编码规则:
如果只有一个字节则其最高二进制位为0;如果是多字节,颤郑其第一个字节从最高位开始,连续的二进制位值为1的个数决定了饥冲其编码的字节数,其余各字节均以10开头。
实际表示ASCII字符的UNICODE字符,将会编码成1个字节,并且UTF-8表示与ASCII字符表示是一样的。所有其他的UNICODE字符转化成UTF-8将需要至少2个字节。每个字节由一个换码序列开始。第一个字节由唯一的换码序列,由n位连续的1加一位0组成,首字节连续的1的个数表示字符编码所需的字节数。
Unicode转换为UTF-8时,可以将Unicode二进茄肢颂制从低位往高位取出二进制数字,每次取6位,如上述的二进制就可以分别取出为如下示例所示的格式,前面按格式填补,不足8位用0填补。
参考资料来源:百度百科:UTF-8
方法一:
思路:先转为Unicode,然后转为GBKString 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()
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)