■■■关于FileInputStream read函数的问题
以下代码测试通过   
 import   java.io.*; 
 public   class   aa 
 { 
 	public   static   void   main(String   args[])      throws   
IOException  	{    
 		FileInputStream   fp=new   FileInputStream( "cls.bat "); 
 		byte   b[]=new   byte[1000]; 
 		int   n=0; 
 		while((fp.read(b,n,1)!=-1)&&n <1000)      //注意此处的b是不加下标的,WHY??? 
 		{ 
 			System.out.print((char)b[n]); 
 			n++; 
 		} 
 	}	 
 }   
 我有问题的是这一句:   
 fp.read(b,n,1)!=-1         //每调用一次read函数就读入一个字节给b,         为什么不是用b[n]?而是直接用b?   
------解决方案--------------------read 
 public int read(byte[] b, 
                 int off, 
                 int len) 
          throws IOException从此输入流中将最多 len 个字节的数据读入一个字节数组中。在某些输入可用之前,此方法将阻塞。    
 覆盖: 
 类 InputStream 中的 read 
 参数: 
 b - 存储读取数据的缓冲区。 
 off - 数据的起始偏移量。 
 len - 读取的最大字节数。  
 返回: 
 读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1。  
 抛出:  
 IOException - 如果发生 I/O 错误。 
 另请参见: 
 InputStream.read()