读书人

java的io中的文件关闭有关问题

发布时间: 2012-09-14 11:53:44 作者: rapoo

java的io中的文件关闭问题!
如题。代码如下!

Java code
import java.io.*;public class TestBufferStream1 {    public static void main(String args[]) {        try        {            FileInputStream fis = new FileInputStream("c:/java/IO/TestFileInputStream.java");            BufferedInputStream bis = new BufferedInputStream(fis);            int c = 0;            System.out.println(bis.read());            System.out.println(bis.read());            bis.mark(100);            for(int i = 0; i < 10 && ((c = bis.read()) != -1); i ++ ) {                System.out.print((char)c + " ");            }            bis.reset();            System.out.println();            for(int i = 0; i < 10 && ((c = bis.read()) != -1); i ++ ) {                System.out.print(c + " ");            }            bis.close();           //为什么fis不用关闭那!?        }        catch (IOException e)        {            e.printStackTrace();        }    }}


[解决办法]
bis.close(); 的关闭里会把你构造函数里传给它的FileInputStream给close掉的。
所以fis 不用关了。
[解决办法]
缓冲流关闭就可以了,它会调用内层的流关闭方法
[解决办法]
FileInputStream是文件输入流,BufferedInputStream是对FileInputStream进行了一个包装,因此只要把bis.close()关闭了fis文件

读书人网 >J2SE开发

热点推荐