首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

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

2012-09-14 
java的io中的文件关闭问题!如题。代码如下!Java codeimport java.io.*public class TestBufferStream1 {pu

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文件

热点排行