FileInputStream的read方法:
API文档中这样写的:
read
public int read()
throws IOException从此输入流中读取一个数据字节。如果没有输入可用,则此方法将阻塞。 指定者:
类 InputStream 中的 read
返回:
下一个数据字节;如果已到达文件末尾,则返回 -1一个字节一个字节的读,读出的是字节,返回值为什么是int呢?我不是很理解字节。
API文档中这样写的:
read
public int read()
throws IOException从此输入流中读取一个数据字节。如果没有输入可用,则此方法将阻塞。 指定者:
类 InputStream 中的 read
返回:
下一个数据字节;如果已到达文件末尾,则返回 -1一个字节一个字节的读,读出的是字节,返回值为什么是int呢?我不是很理解字节。
这个问题你都能想到?呵呵~~~~。我认为没有必要花太多的精力在这样的问题上。人家规定了返回 int 那就是返回 int 。如果你希望是 byte ,转过来就是了。我想,之所以要返回 int 而不是 byte ,那是为了方便判断是否读到了文件末尾。试想,如果返回 byte ,你又该如何判断是否读到末尾了呢? 我曾经是这么告诉自己的,呵呵。没有考证,但自认为是很合理的解释。如果谁有更好的,分享下啊。呵呵
... LZ 说的不是 read(byte[]) 方法吧?
FileInputStream fin;
try {
fin = new FileInputStream("1.java");
int c ;
for(int i=1;i<=7&&(c=fin.read())!=-1;i++){
System.out.println((char)c);
System.out.println(c);
}
fin.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}