`
jacktea
  • 浏览: 6786 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

IO流关闭

阅读更多
public static void testClose() throws Exception{
	FileInputStream fi = new FileInputStream("F:\\test.txt");
	InputStreamReader reader = new InputStreamReader(fi,"GBK");
	BufferedReader br = new BufferedReader(reader);
	String line = null;
	while((line=br.readLine())!=null){
		System.out.println(line);
	}
	System.out.println("do close");//文件不能删除
	TimeUnit.SECONDS.sleep(30);
	br.close();
	System.out.println("BufferedReader close");//文件可以删除
	TimeUnit.SECONDS.sleep(30);
	reader.close();
	System.out.println("InputStreamReader close");
	TimeUnit.SECONDS.sleep(30);
	fi.close();
	System.out.println("FileInputStream close");
}

 流关闭时只需关闭最外层的,外层流关闭时依次会调用装饰在内部的流对象的关闭方法

public void close() throws IOException {
	synchronized (lock) {
		if (in == null)
			return;
		in.close();
		in = null;
		cb = null;
	}
}

 in为构造函数包装的流对象,例子中为InputStreamReader

public void close() throws IOException {
	sd.close();
}

 sd 为StreamDecoder对象,它包装了inputStream对象,即例子中的FileInputStream对象

public void close() throws IOException {
    synchronized (lock) {
        if (!isOpen)
            return;
        implClose();
        isOpen = false;
    }
}
void implClose() throws IOException {
    if (ch != null)
        ch.close();
    else
        in.close();
}

in 上例中为FileInputStream

分享到:
评论

相关推荐

    IO流中关闭和刷新的区别

    IO流中关闭和刷新的区别 因为内置缓冲区的原因,如果不关闭输出流,无法写出字符到文件中,但是关闭的流对象,是无法继续写出数据的,如果我们既想写出数据,又想继续使用流,就需要使用flush方法了 flush : 刷新...

    IOCloseUtils.java

    io流关闭工具类,摆脱繁琐的重复嵌套 try catch 简化关闭流程,一看就懂的工具类,很简单 有不懂的可以看我的其他文章有介绍怎么使用

    java关闭流连接IO工具类

    主要为大家详细介绍了java关闭流连接IO工具类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    C++实验4:IO流的实验

    掌握文件流的概念 掌握文件的打开、关闭以及各种函数的使用方法 掌握文件的读写方法 实验内容 在实验2-继承与派生的基础上添加以下功能: 把student类和teacher类对象的信息保存到文本文件中 从文本文件中读取已...

    Java中的IO流(二)字符流的常用操作

    文章目录前言基础概念IO流分类导向图何为输入流和输出流?字符流的分类①节点流②处理流③流的使用一般步骤④流的关闭字符流具体使用Ⅰ文件流①从文件中读取字符①将字符写入文件Ⅱ字符串流Ⅲ字符数组流Ⅳ缓冲流Ⅴ...

    Java文件流关闭和垃圾回收问题

    周末碰到一段代码,是关于Java IO流的,代码中出现在一个多线程的系统中,其中一段代码在打开一个文件操作流用完以后没有及时关闭,开始以为很快会出现打开文件太多或者导致内存溢出,但是在运行了很长时间以后仍然...

    Java中的IO流(一)字节流的常用操作

    文章目录前言基础概念IO流分类导向图何为输入流和输出流?各种字节流的用法①节点流②处理流③流的使用一般步骤④流的关闭具体用法Ⅰ文件流Ⅱ字节数组流Ⅲ缓冲流Ⅳ转换流Ⅴ数据流Ⅵ对象流(序列化和反序列化)Ⅶ打印...

    IO流文件操作字节流使用

    什么是IO流 I input 输入流 read 读取数据 O output 输出流 write 写入数据 一般情况下都是按照当前程序使用的内存为参照物来考虑数据的走向问题。 文件操作为例 从内存中保存数据到硬盘 output 从硬盘中读取...

    IO输入流代码

    提供文件输入流资源共享 /* * 从文件中写入数据 */ public static void writeFile...关闭流 try { fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

    commons-io-2.4

    内部自动缓存buffer,友好的关闭流closeQuetly,以LineIterator行迭代器的形式读取文件,流

    Java基础-IO流(作业,适合Java初学者查看).zip

    Scanner input = new Scanner(System.in); /** * 创建管理员对象 */ Manager gly = new Manager();... System.out.println("提示:请正常关闭系统,否则将无法正常保存设置信息!"); System.out.print

    commons-io-2.CHM

    closeQueitly方法:关闭流。 3. contentEquals方法:比较两个流中的内容是否一致。 4. copy方法:将输入流中的内容拷贝到输出流中,并可以指定字符编码。 5. copyLarge方法:将输入流中的内容拷贝到输出流中,...

    javautils:Java实用程序

    常用工具类,包括常量定义,正则表达式工具类,字符串工具类,IO流关闭,java对象拷贝 2 com.wind.media tess4j工具类,ocr文字识别,以及opencv得身份证人脸提取, 音频,二维码 3 com.wind.encrypt 加密解密工具类...

    Java IO学习文件处理

    * 3、关闭输入输出流 */ public static void main(String[] args) { // TODO Auto-generated method stub Map,List<String>> map = new HashMap,List<String>>(); BufferedReader br = null; try { ...

    node-socketio-stream:扩展 socket.io 以支持数据流。 功能与 socket.io-stream 相同,但相关模块已更新

    Socket.IO 的流模块 这个库是对节点模块的更新。 没有进行代码更改,但已更新debug模块以避免现有项目中的安全漏洞。 要求 node.js 4.x 或更高版本 下载安装 npm install @sap_oss/node-socketio-stream 已知的问题...

    秃头星人进化记(IO流学习总结)

    IO流.学习笔记.总结开始基本概念File类(*****)*构造方法**常用方法*字节流(*****)字符流(*****)处理流(*****)关闭流(***)打印流(***)其他流(**)1:字节数组 节点流2:基本数据类型+String 保留数据+...

    IO输入输出体系.rar

    io流简介 File类 createNewFile() File.pathSwparator 与系统有关的路径分隔符,它被表示为一个字符串 windows为 分号";" File.pathSwparatorChar 与系统有关的路径分割符,它被表示为一个字符 File.separator 与...

    day019-io笔记和代码.rar

    必须要关闭IO流,节约资源开销 2. 关闭IO流原则,先开后关 3. IO流工具类的抽取,将所有的关流(字节流和字符流)方法抽取出来,优化代码 4. 字符流:(重点) * 使用场景:使用于处理文本...

    Ch5 IO与文件操作 .ppt

    这个ppt主要 描述 io与 文件操作这两种 用法。 io流 重要的输入输出 文件的打开 关闭

Global site tag (gtag.js) - Google Analytics