FileInputStream read

晴天v1 2009-06-29 11:26:51
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以内的数字。
请指点,谢谢。


...全文
137 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hard_J2EE 2009-07-03
  • 打赏
  • 举报
回复
是2楼所说
bigbug9002 2009-06-30
  • 打赏
  • 举报
回复
从此输入流中读取一个数据字节。如果没有输入可用,则此方法将阻塞。
意思是如果没有输入,read()方法会一直等着输入.

乱码是因为你每次读入一个字节,也就是半个汉字,再把这半个汉字输出。能不乱吗?
晴天v1 2009-06-30
  • 打赏
  • 举报
回复
谢谢 bigbug9002的热心解答,昨晚想了下,自己也想到了这点,java中的char是存的是一个Unicode字符,占两个字节,而read方法只读一个字节放到里面。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧