为了账号安全,请及时绑定邮箱和手机立即绑定

java 输入流类FileInputStream下的read()是什么意思?

java 输入流类FileInputStream下的read()是什么意思?

慕码人2483693 2019-03-21 14:13:44
JDK帮助文档查到解释如下:read()public int read(byte[] b, int off,int len) throws IOException从此输入流中将最多 len 个字节的数据读入一个字节数组中。在某些输入可用之前,此方法将阻塞。返回:读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1------问题:1下面我不知道这个read()到底返回什么,我把它打印出来,数字很怪。书上是强制把read()转化为char 类型:text[count]=( (char) fileobject.read());------问题2:转化成char类型的read()有什么特别的?完整代码如下: 若觉得很多,可以不看完整代码。谢谢!import java.io.IOException;import java.io.InputStream;import java.io.FileInputStream;class FileInputStreamTest{public FileInputStreamTest(){}public static void main(String [] args) throws IOException{InputStream fileobject=new FileInputStream("Text.txt");int size;System.out.println("可读取的字节:"+(size=fileobject.available()));System.out.println("文件内容如下:");char [] text =new char[200];for(int count=0;count<size-1;count++){text[count]=( (char) fileobject.read());System.out.print(text[count]);}int aaa=fileobject.read();System.out.println("打印出aaa:"+aaa);//打印aaa=98fileobject.close(); //当for里count<size时,打印aaa=-1}}
查看完整描述

4 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

FileInputStream的read() 默认情况下 返回 ASCII码

读取文件的时候 这样来做比较好点

FileInputStream file=new FileInputStream("filename");
InputStreamReader isr=new InputStreamReader(file);
BufferedReader br=new BufferedReader(isr);
try{
String show=br.readLine();
while(show!=null){
//String show=br.readLine();
System.out.println(show);
show=br.readLine();
}
}

  


查看完整回答
反对 回复 2019-03-29
  • 4 回答
  • 0 关注
  • 496 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信