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();
}
}
添加回答
举报
0/150
提交
取消