猿问

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

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=98
fileobject.close(); //当for里count<size时,打印aaa=-1
}

}

慕码人2483693
浏览 497回答 4
4回答

慕虎7371278

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();}}&nbsp;&nbsp;
随时随地看视频慕课网APP

相关分类

Java
我要回答