1、try {
//eclipse默认当前目录为工程根目录,则new File()中使用的相对路径应该是相对根目录的路径
FileInputStream input=new FileInputStream(new File("bin\\cn\\google\\demo\\data.txt"));
byte[] b=new byte[100];
int len=input.read(b);
//解决乱码问题
//方法一:手动构造String解码
String str=new String(b,0,len,"UTF-8");
System.out.println(str);
//方法二:利用InputStreamReader对象将字节流转换为相应编码的字符流
FileInputStream input=new FileInputStream(new File("bin\\cn\\google\\demo\\data.txt"));
BufferedReader reader=new BufferedReader(new InputStreamReader(input,"UTF-8"));
int a;
while((a=reader.read())!=-1){
System.out.print((char)a);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
2、System.out和System.in都是按照平台的默认码表进行编码输出和输入的,使用new String(…..)在参数中设置码表可以解码,使用String的getBytes(….)方法可以对字符进行编码。
3、eclipse中工程的properties更改的编码仅仅是eclipse环境中的码表,即仅仅更改System.in和System.out的编码