黑马程序员技术交流社区
标题:
大家好 请问中文乱码怎么处理?
[打印本页]
作者:
wangyuyus
时间:
2013-11-12 13:59
标题:
大家好 请问中文乱码怎么处理?
import java.io.*;
public class Text8 {
/**
* 定义一个文件输入流,调用read(byte[] b)方法将exercise.txt文件中的所有内容打印出来(byte数组的大小限制为5)。
*
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
read();
}
public static void read() throws Exception {
FileInputStream fis = new FileInputStream(new File("exercise.txt"));
int i = 5;
byte[] by = new byte[i];
while (fis.read(by, 0, i) != -1) {
System.out.print(new String(by));
}
fis.close();
}
}
打印出的中文都是乱码,请问大家这样有什么方法处理么
作者:
零下五度的水
时间:
2013-11-12 14:11
IO流有讲啊,有一个可以转换编码的,好像是 InputStreamReader 吧,指定编码形式就是了
你看看你那个 txt 是用什么编码存储的,照着读就是了
作者:
hel
时间:
2013-11-12 15:17
FileInputStream 是读取字节流的,你可以将FileInputStream 改为FileRearder,
或者:
FileInputStream fis = new FileInputStream(new File("exercise.txt"));
InputStreamReader in = new InputStreamReader(fis);
打印in
作者:
wjj410830911
时间:
2013-11-12 15:43
你用的是IO字节流FileInputStream
可以用字符流来解决问题FileReader, FileWriter
但字符流在拷贝文本文件, 不推荐使用. 因为读取时会把字节转为字符, 写出时还要把字符转回字节.
只有像程序需要读取一段文本, 或者需要写出一段文本的时候可以使用字符流,比如现在这个情况
当然如果你执意要用字节流的话,可以把
int i = 5;
byte[] by = new byte[i];
数组长度改成4或者2;不要用奇数这么奇葩的长度
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2