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
相关推荐
### JAVA IO流概念及其应用详解 #### 一、JAVA为何引入流的概念? 在JAVA中,引入流的概念主要是为了实现对各种类型数据的高效处理。在实际应用中,无论是从网络中传输数据还是从本地文件中读取数据,亦或是与用户...
IO流中关闭和刷新的区别 因为内置缓冲区的原因,如果不关闭输出流,无法写出字符到文件中,但是关闭的流对象,是无法继续写出数据的,如果我们既想写出数据,又想继续使用流,就需要使用flush方法了 flush : 刷新...
在实际开发中,`IO流`的使用需要考虑缓冲、异常处理以及关闭流等问题。Java 7引入了try-with-resources语句,可以更方便地管理资源,确保流在使用完毕后被正确关闭。 总结来说,`Map`集合提供了键值对的存储,`Set`...
Java IO流技术是Java平台中用于处理输入输出的重要机制,其核心在于数据的传输,从数据源到程序或从程序到目的地。在Java中,流分为两大类:输入流(InputStream、Reader)和输出流(OutputStream、Writer)。输入流...
Java IO流的使用涉及到流的打开、数据的读写操作和流的关闭。正确地使用流可以避免内存泄漏和其他资源问题。在实际开发中,通常会结合try-catch-finally语句来确保即使发生异常也能正确关闭流。 总结来说,Java IO...
Java 中文件 IO 流 Java 中文件 IO 流是指 Java ...最后,我们使用 close() 方法关闭了输入流和输出流对象。 在 Java 中,文件 IO 流操作是非常重要的,掌握文件 IO 流操作可以帮助我们更好地处理文件相关的任务。
本示例是关于如何使用Java中的IO流进行实际操作的演示,主要包括字节流和字符流的使用。字节流处理的是原始的八位字节数据,而字符流则处理Unicode字符集中的字符。下面我们将深入探讨这两个主要流类型及其应用场景...
### Java IO流学习笔记 #### 一、IO流的四大抽象类 - **InputStream/OutputStream**:字节的输入输出流的抽象类。 - 数据单位:字节(8比特,范围0-255) - **Reader/Writer**:字符的输入输出流的抽象类。 - ...
IO流的使用通常涉及“打开”、“读取/写入”和“关闭”三个步骤。在处理文件时,需要特别注意文件的关闭,以释放系统资源。此外,使用try-catch-finally语句块可以确保即使在出现异常时也能正确关闭流。 总的来说,...
在Java编程语言中,IO流(Input/Output流)是用来处理数据输入与输出的重要工具。在文本文件的复制过程中,通常会用到三种主要的流类型:字节流(Byte Stream)、字符流(Character Stream)以及缓冲流(Buffered ...
Java中的IO流是Java核心库java.io中的关键组成部分,它为程序提供了与外部资源交互的能力,包括文件读写、标准设备输入输出等。Java的IO流机制基于流的概念,流可以被视为数据传输的通道,数据按照序列化的方式从...
Java IO流是Java平台中用于处理输入输出操作的核心机制,它允许程序与各种数据源(如文件、设备、网络)进行交互。IO流分为两大类:字节流和字符流,分别处理字节数据和字符数据。在Java中,字节流由InputStream和...
在Java编程中,IO流(Input/Output Stream)是用来处理数据输入和输出的重要工具。它允许程序与外部设备,如硬盘、网络、内存等进行数据交互。IO流分为两大类:字节流(处理字节数据)和字符流(处理字符数据)。...
C++的IO流是C++标准库中的一个重要组成部分,它为程序与外部设备(如键盘、屏幕、文件等)之间的数据交换提供了强大的支持。IO流是C++对C语言I/O系统的一种扩展和改进,引入了面向对象的概念,使得输入输出操作更加...
* void close() throws IOException:关闭流,释放内存资源。 * long skip(long n) throws IOException:跳过 n 个字节,不读取。 四、OutputStream 的基本方法 OutputStream 是字节流的基类,提供了基本的输出...
### 文档JAVA-IO流 #### 一、IO流概述 1. **什么是IO** - I代表**输入**(input),O代表**输出**(output)。在Java中,所有负责输入输出的类都位于`java.io`包内。这些类主要用于进行数据的输入输出操作。 2. **流...
java基础中的IO流是Java提供的一套用于文件读写操作的流式API,它包括字节流和字符流两种基本类型。字节流主要用在处理二进制数据,而字符流则是处理文本数据。 首先,文档中提到了`File`类,它是IO流操作中用于...
Java中的IO流是进行输入/输出操作的核心工具,主要用于数据的传输,比如读取文件、网络通信等场景。IO流分为两大类:字符流(Character Stream)和字节流(Byte Stream)。字符流处理单个字符,而字节流处理单个字节...
根据提供的信息,我们可以总结出以下关于“IO流练习题1”的相关知识点: ### IO流基础知识 #### 1. IO流概念 在计算机科学中,**输入/输出流(Input/Output Stream,简称IO流)**是指数据从一个地方到另一个地方的...
在处理IO流时,一定要注意捕获IOException,并在完成操作后关闭流。Java的try-with-resources语句可以帮助我们更方便地管理资源,确保流在不再需要时被正确关闭。 总结: Java的IO流和Socket编程为实现高效、可靠的...