当前位置: 技术问答>java相关
我用流读取文件,如果文件中有中文字符则出现乱码,该怎么办??
来源: 互联网 发布时间:2015-03-01
本文导语: import java.io.*; public class D { public static void main(String[] args) { try { DataInputStream in = new DataInputStream( new BufferedInputStream( new FileInputStream("1.txt"))); ...
import java.io.*;
public class D {
public static void main(String[] args) {
try {
DataInputStream in =
new DataInputStream(
new BufferedInputStream(
new FileInputStream("1.txt")));
System.out.println(in.available());
while(in.available() != 0) {
System.out.print((char)in.readByte());
}
} catch (IOException e) {
System.err.println("IOException");
}
}
}
如果文件中有中文则出现乱码,该怎么进行转换?
public class D {
public static void main(String[] args) {
try {
DataInputStream in =
new DataInputStream(
new BufferedInputStream(
new FileInputStream("1.txt")));
System.out.println(in.available());
while(in.available() != 0) {
System.out.print((char)in.readByte());
}
} catch (IOException e) {
System.err.println("IOException");
}
}
}
如果文件中有中文则出现乱码,该怎么进行转换?
|
byte[] buffer=new byte[n];
int length=in.read(buffer);
String tmp=new String(buffer, 0, length, "UnicodeLittleUnmarked");
if(length>0)
System.out.println(tmp);
int length=in.read(buffer);
String tmp=new String(buffer, 0, length, "UnicodeLittleUnmarked");
if(length>0)
System.out.println(tmp);
|
中文字符可是又字节的,你要用类FileInputStream或FileOutputStream啊!还有读取的方法也不对!
|
System.out.print((char)in.readByte());
不要变成char型,不能支持中文的啊
用string sMessage=new String(byte[] bMessage);
不要变成char型,不能支持中文的啊
用string sMessage=new String(byte[] bMessage);
|
网上有个这样的编码转换程序,在哪我忘了。我也下了一个的。
|
text = new String(text.toString().getBytes("8859_1"),"gb2312")