java把内容输入到txt中乱码,java 读文件乱码
写爬虫互联网协议(互联网协议)被封了怎么解决?立即使用
爪哇岛读取文本文件(文本文件)文件,如果编码格式不匹配,就会出现乱码现象。所以读取文本文件(文本文件)文件的时候需要设置读取编码。文本文件(textfile)文档编码格式都是写在文件头的,在程序中需要先解析文件的编码格式,获得编码格式后,在按此格式读取文件就不会产生乱码了。(推荐:java视频教程)
爪哇岛编码与文本文件(文本文件)编码对应:
示例:
包com。lfl。附件;
导入Java。io。缓冲阅读器;
导入Java。io。文件;
导入Java。io。文件输入流;
导入Java。io。inputstream
导入Java。io。inputstreamreader
公共类TextMain {
公共静态void main(String[] args)引发异常{
字符串文件路径= D:/article。txt ;
//字符串文件路径= D:/article 333。txt ;
//字符串文件路径= D:/article 111。txt ;
string content=read txt(文件路径);
System.out.println(内容);
}
/**
* 解析普通文本文件流式文件如文本文件(文本文件)
* @param路径
* @返回
*/
@SuppressWarnings(未使用)
公共静态字符串readTxt(字符串路径){
StringBuilder content=new StringBuilder(" ");
尝试{
字符串代码=解析代码(路径);
文件文件=新文件(路径);
InputStream is=新文件InputStream(file);
InputStreamReader ISR=new InputStreamReader(is,code);
BufferedReader br=新缓冲阅读器(ISR);
//char[]buf=new char[1024];
//int I=br。读(buf);
//String s=new String(buf);
//系统。出去。println(s);
string str=
while (null!=(str=br。readline()){
内容。append(字符串);
}
br。close();
} catch(异常e) {
e。printstacktrace();
System.err.println(读取文件:路径失败!);
}
返回内容。tostring();
}
公共静态字符串解析代码(字符串路径)引发异常{
//字符串文件路径= D:/article。txt ;//[-76,-85,-71] ANSI
//字符串文件路径= D:/article 111。txt ;//[-2,-1,79] unicode big endian
//字符串文件路径= D:/article 222。txt ;//[-1,-2,32] unicode
//字符串文件路径= D:/article 333。txt ;//[-17,-69,-65] UTF-8
InputStream InputStream=新文件InputStream(路径);
字节[]头=新字节[3];
inputStream.read(头);
字符串代码= gb2312//或商业版
if (head[0]==-1 head[1]==-2)
code= UTF-16 ;
else if (head[0]==-2 head[1]==-1)
code= Unicode
else if(head[0]==-17 head[1]==-69 head[2]==-65)
代码=‘UTF八号’;
输入流。close();
System.out.println(代码);
返回代码;
}
}注意:在resolveTxt方法中不能通过readTxt方法传输入流流,这样会使两个方法持有同一个流引用,而在resolveTxt方法中已读过流中的三个字节,流中的刷卡机此时已经是3了,而不是流的起始位置,再在readTxt中读取时就会出现IOException:读取错误。
更多爪哇岛知识请关注爪哇岛基础教程栏目。以上就是爪哇岛读取文本文件(文本文件)文件乱码解决方法的详细内容,更多请关注我们其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。