IO中的问题
[code=Java]
public class file
{
public static void main(String[] args)throws Exception
{
byte[] by=new byte[1024];
int len=0;
FileInputStream fis=new FileInputStream("e:\\123.txt");
FileOutputStream fos=new FileOutputStream("d:\\IO\\file.txt");
while(true)
{
len=fis.read(by,0,by.length);
fos.write(by,0,len);
if(len==-1)
{
break;
}
}
}
}
code]
public int read(byte[] b,int off,int len):
从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。如果 len 不为 0,则在输入可用之前,该方法将阻塞;否则,不读取任何字节并返回 0。
问题:为什么len不为0,在输入可用之前,该方法将阻塞.否则,不读取任何字节返回0呢?
上面程序中的by字节数组的length是1024.在len=fis.read(by,0,by.length);写的是by.length就能运行,如果写的是len就阻塞了,为什么呢?by.length也是不为0呀!