`
jacktea
  • 浏览: 6994 次
  • 性别: 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流pdf宝典

    ### JAVA IO流概念及其应用详解 #### 一、JAVA为何引入流的概念? 在JAVA中,引入流的概念主要是为了实现对各种类型数据的高效处理。在实际应用中,无论是从网络中传输数据还是从本地文件中读取数据,亦或是与用户...

    IO流中关闭和刷新的区别

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

    map集合以及IO流

    在实际开发中,`IO流`的使用需要考虑缓冲、异常处理以及关闭流等问题。Java 7引入了try-with-resources语句,可以更方便地管理资源,确保流在使用完毕后被正确关闭。 总结来说,`Map`集合提供了键值对的存储,`Set`...

    JAVA IO流技术

    Java IO流技术是Java平台中用于处理输入输出的重要机制,其核心在于数据的传输,从数据源到程序或从程序到目的地。在Java中,流分为两大类:输入流(InputStream、Reader)和输出流(OutputStream、Writer)。输入流...

    Java基础篇:IO流.pdf

    Java IO流的使用涉及到流的打开、数据的读写操作和流的关闭。正确地使用流可以避免内存泄漏和其他资源问题。在实际开发中,通常会结合try-catch-finally语句来确保即使发生异常也能正确关闭流。 总结来说,Java IO...

    Java中文件IO流.pdf

    Java 中文件 IO 流 Java 中文件 IO 流是指 Java ...最后,我们使用 close() 方法关闭了输入流和输出流对象。 在 Java 中,文件 IO 流操作是非常重要的,掌握文件 IO 流操作可以帮助我们更好地处理文件相关的任务。

    IO流的demo

    本示例是关于如何使用Java中的IO流进行实际操作的演示,主要包括字节流和字符流的使用。字节流处理的是原始的八位字节数据,而字符流则处理Unicode字符集中的字符。下面我们将深入探讨这两个主要流类型及其应用场景...

    Java 的 IO流笔记.md

    ### Java IO流学习笔记 #### 一、IO流的四大抽象类 - **InputStream/OutputStream**:字节的输入输出流的抽象类。 - 数据单位:字节(8比特,范围0-255) - **Reader/Writer**:字符的输入输出流的抽象类。 - ...

    586.584.JAVA基础教程_IO流-IO流的体系结构(586).rar

    IO流的使用通常涉及“打开”、“读取/写入”和“关闭”三个步骤。在处理文件时,需要特别注意文件的关闭,以释放系统资源。此外,使用try-catch-finally语句块可以确保即使在出现异常时也能正确关闭流。 总的来说,...

    IO流三种流方式的文本文件的复制

    在Java编程语言中,IO流(Input/Output流)是用来处理数据输入与输出的重要工具。在文本文件的复制过程中,通常会用到三种主要的流类型:字节流(Byte Stream)、字符流(Character Stream)以及缓冲流(Buffered ...

    彻底明白java中的IO流

    Java中的IO流是Java核心库java.io中的关键组成部分,它为程序提供了与外部资源交互的能力,包括文件读写、标准设备输入输出等。Java的IO流机制基于流的概念,流可以被视为数据传输的通道,数据按照序列化的方式从...

    java IO流的使用

    Java IO流是Java平台中用于处理输入输出操作的核心机制,它允许程序与各种数据源(如文件、设备、网络)进行交互。IO流分为两大类:字节流和字符流,分别处理字节数据和字符数据。在Java中,字节流由InputStream和...

    IO流自用模板

    在Java编程中,IO流(Input/Output Stream)是用来处理数据输入和输出的重要工具。它允许程序与外部设备,如硬盘、网络、内存等进行数据交互。IO流分为两大类:字节流(处理字节数据)和字符流(处理字符数据)。...

    C++ IO流 学习课件

    C++的IO流是C++标准库中的一个重要组成部分,它为程序与外部设备(如键盘、屏幕、文件等)之间的数据交换提供了强大的支持。IO流是C++对C语言I/O系统的一种扩展和改进,引入了面向对象的概念,使得输入输出操作更加...

    java io 流,文件读取操作

    * void close() throws IOException:关闭流,释放内存资源。 * long skip(long n) throws IOException:跳过 n 个字节,不读取。 四、OutputStream 的基本方法 OutputStream 是字节流的基类,提供了基本的输出...

    文档JAVA-IO流

    ### 文档JAVA-IO流 #### 一、IO流概述 1. **什么是IO** - I代表**输入**(input),O代表**输出**(output)。在Java中,所有负责输入输出的类都位于`java.io`包内。这些类主要用于进行数据的输入输出操作。 2. **流...

    java基础 IO流

    java基础中的IO流是Java提供的一套用于文件读写操作的流式API,它包括字节流和字符流两种基本类型。字节流主要用在处理二进制数据,而字符流则是处理文本数据。 首先,文档中提到了`File`类,它是IO流操作中用于...

    IO流的读入读出

    Java中的IO流是进行输入/输出操作的核心工具,主要用于数据的传输,比如读取文件、网络通信等场景。IO流分为两大类:字符流(Character Stream)和字节流(Byte Stream)。字符流处理单个字符,而字节流处理单个字节...

    IO流练习题1

    根据提供的信息,我们可以总结出以下关于“IO流练习题1”的相关知识点: ### IO流基础知识 #### 1. IO流概念 在计算机科学中,**输入/输出流(Input/Output Stream,简称IO流)**是指数据从一个地方到另一个地方的...

    io流写的远程通讯

    在处理IO流时,一定要注意捕获IOException,并在完成操作后关闭流。Java的try-with-resources语句可以帮助我们更方便地管理资源,确保流在不再需要时被正确关闭。 总结: Java的IO流和Socket编程为实现高效、可靠的...

Global site tag (gtag.js) - Google Analytics