用FileInputStream去读文件的时候,设置一个缓冲数组。代码如下:
                
                File f=new File("E:\\java资料\\命名标准.docx");
FileInputStream fip=null;


try {


fip=new FileInputStream(f);


byte []bytes=new byte[1024];
int n=0;

//循环读取
while((n=fip.read(bytes))!=-1)
{

String s=new String(bytes, 0, n);
System.out.println(s);
}

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
fip.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
小弟的问题是:
fip.read函数是每读完1024个字节就会自动转向随后的1024个字节吗?

解决方案 »

  1.   

    这个read不是一个字节一个字节往后读的吗?读满1024bytes(最后一次可能不到1024)就处理一下
    这是我的理解
      

  2.   

    n=fip.read(bytes)
    这一句,每次从数据源中读1024字节,放到数组bytes中,并返回实际读取的字节数。
    如果读不到数据(到达数据源末尾),则返回-1
      

  3.   


    因为在while循环中,所以可以循环读取
      

  4.   

    那个n就是读取到的byte数目,如果没有读到就返回-1