当前位置: 技术问答>java相关
在读入文件时,英文可以正常,而中文有的却显示了乱码,请帮助~
来源: 互联网 发布时间:2015-09-06
本文导语: 我在读出文件的时候用了以下的方法,可是对英文的读出都很正常,而对中文的读出却出现了问题,有的中文显示了乱码,请大虾们帮忙看什么地方需要修改,谢谢! public String openfile(String str) {//str传入了文件...
我在读出文件的时候用了以下的方法,可是对英文的读出都很正常,而对中文的读出却出现了问题,有的中文显示了乱码,请大虾们帮忙看什么地方需要修改,谢谢!
public String openfile(String str)
{//str传入了文件名和路径,
String strd=new String();
int byteread;
byte []data=new byte[2];
try
{
FileInputStream inputfile=new FileInputStream(str);
DataInputStream inputdata=new DataInputStream(inputfile);
while((byteread=inputdata.read(data))!=-1)
{
strd=strd+new String(data,0,byteread);
}
inputdata.close();
}
catch(Exception erw){}
return strd;
//返回了读入的字符
}
我读入的是一般的文本文件.txt文件!
public String openfile(String str)
{//str传入了文件名和路径,
String strd=new String();
int byteread;
byte []data=new byte[2];
try
{
FileInputStream inputfile=new FileInputStream(str);
DataInputStream inputdata=new DataInputStream(inputfile);
while((byteread=inputdata.read(data))!=-1)
{
strd=strd+new String(data,0,byteread);
}
inputdata.close();
}
catch(Exception erw){}
return strd;
//返回了读入的字符
}
我读入的是一般的文本文件.txt文件!
|
用FileReader并指明编码方式
InputStreamReader is = new InputStreamReader(new FileInputStream("youfile.txt"),"GBK");
InputStreamReader is = new InputStreamReader(new FileInputStream("youfile.txt"),"GBK");
|
我觉的可以这样:
FileInputStream in = new FileInputStream("d:\test.txt");
DataInputStream data = new DataInputStream(in);
byte[] b = new byte[data.available()];
data.read(b);
String str = new String(b);
如果需要解析汉字,可使用:
byte[] temp = str.getBytes("iso8859-1");
String sString = new String(temp);
可以解决问题
当然其实解决问题的方法很多,自己可以看看Java对于流的处理就知道怎么办了:)
FileInputStream in = new FileInputStream("d:\test.txt");
DataInputStream data = new DataInputStream(in);
byte[] b = new byte[data.available()];
data.read(b);
String str = new String(b);
如果需要解析汉字,可使用:
byte[] temp = str.getBytes("iso8859-1");
String sString = new String(temp);
可以解决问题
当然其实解决问题的方法很多,自己可以看看Java对于流的处理就知道怎么办了:)
|
有的中文显示了乱码,是因为你每次取的是两个字节,对于英文是没问题的,但对于中文,一旦错位了一个字节(比如它前面的英文字符为单数),就会出现乱码了。
我觉得读取文件最好用字符流的方法。再好好看看关于I/O的内容吧。
我觉得读取文件最好用字符流的方法。再好好看看关于I/O的内容吧。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。