FileInputStream 中的read()方法。"从此输入流中读取一个数据字节。如果没有输入可用,则此方法将阻塞。" 不太明白这句话。
package TestTwo;import java.io.FileInputStream;public class TestFileRead { /**
 * @param args
 */
public static void main(String[] args) throws Exception {
FileInputStream inStream = new FileInputStream("C:\\input.txt");

int cc = inStream.read();
while(cc != -1) {
System.out.println((char)cc);
cc = inStream.read();
}

inStream.close();

}
}
input.txt中内容:好好学习为何输出是乱码?
read()方法返回的应该是ascii码吧? 在循环中 System.out.println(cc);输出的是200以内的数字。
请指点,谢谢。

解决方案 »

  1.   

    从此输入流中读取一个数据字节。如果没有输入可用,则此方法将阻塞。
    意思是如果没有输入,read()方法会一直等着输入.乱码是因为你每次读入一个字节,也就是半个汉字,再把这半个汉字输出。能不乱吗?
      

  2.   

    谢谢 bigbug9002的热心解答,昨晚想了下,自己也想到了这点,java中的char是存的是一个Unicode字符,占两个字节,而read方法只读一个字节放到里面。