`
TRAMP_ZZY
  • 浏览: 139968 次
社区版块
存档分类
最新评论

Java 文件关闭的位置

    博客分类:
  • Java
阅读更多
public class InputFile {
	private BufferedReader in;
	
	public InputFile(String fname) throws Exception {
		try {
			in = new BufferedReader(new FileReader(fname));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			throw e;
		} catch (Exception e) {
			try {
				in.close();
			} catch (IOException e2) {
				e2.printStackTrace();
			}
		} finally {
			// 不能在这里关闭
		}
	}
	
	public String getLine() {
		String s;
		try {
			s = in.readLine();
		} catch (IOException e) {
			throw new RuntimeException("readLine failed");
		}
		return s;
	}
	
	public void dispose() {
		try {
			in.close();
			System.out.println("dispose() successful");
		} catch (IOException e) {
			throw new RuntimeException("in.close() failed");
		}
	}
	
	public static void main(String[] args) {

	}

}
 

public class CleanUp {

	public static void main(String[] args) {
		try {
			// 外层的捕获是未能打开文件 内存的finally 是确定文件已经打开了
			// 出现异常就需要关闭
			InputFile inputFile  = new InputFile("test.java");
			try {
				String s;
				int i = 1;
				while ((s = inputFile.getLine()) != null) {
					System.out.println(s);
				}
			} catch (Exception e) {
				System.out.println("Caught Exception in main");
				e.printStackTrace(System.out);
			} finally {
				inputFile.dispose();
			}
		} catch (Exception e) {
			System.out.println("InputFile construction failed");
		}
	}

}
分享到:
评论

相关推荐

    JAVA文件打开关闭操作

    JAVA中JFileChooser的使用方法 实现打开保存和关闭文件

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

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

    java动态编译指定java文件且将java文件生成jar

    在Java编程中,有时我们需要在运行时动态地编译源代码文件,并将其打包成可执行的JAR(Java Archive)文件。这样的需求通常出现在我们希望根据用户输入或特定条件生成并执行新的代码逻辑时。本教程将深入讲解如何...

    java 写文件 java 写文件 java 写文件 java 写文件

    Java编程语言提供了丰富的API用于处理文件操作,包括创建、读取、写入和删除文件等。在Java中,写文件是通过`java.io`包中的类实现的,主要涉及File类、FileWriter类、BufferedWriter类等。下面将详细阐述Java写文件...

    线程关闭javacv关闭20190508.rar

    此外,确保释放所有打开的资源,如关闭文件或网络连接,这对于JavaCV的FFmpegFrameRecorder来说尤其重要。 在JavaCV中,推流和关闭推流是通过FFmpegFrameRecorder的start()和stop()方法实现的。start()方法初始化并...

    java实现文件加密解密

    在 Java 中,文件操作的流程一般为:打开-->读取-->对内容进行变换-->写入-->关闭。常规性文件操作会用到的类有五个:File、InputStream、OutputStream、FileInputStream、FileOutputStream,均包含在 java.io 下面...

    JAVA文件管理器

    此外,使用try-with-resources语句可以自动处理文件关闭,避免资源泄露。 2. **复制文件**:JAVA提供了多种方法复制文件,比如使用FileInputStream和FileOutputStream组合,逐字节地读取源文件并写入目标文件。另外...

    java 分割文件 将大文件分割成小文件

    同时,确保在处理文件后正确关闭输入/输出流,以防止资源泄露。 总结起来,Java提供了丰富的API来处理文件操作,包括分割大文件。通过结合`FileInputStream`、`FileOutputStream`以及适当的逻辑,我们可以根据文件...

    java 多个小文件合成一个文件

    这个输出流将指向目标合并文件的位置。 3. **读取小文件内容**:通过FileInputStream的read()方法逐字节地读取每个小文件的内容。 4. **写入合并文件**:使用FileOutputStream的write()方法将读取到的字节写入合并...

    java 按顺序读取文件

    在Java编程语言中,按顺序读取文件是基础且重要的操作。这通常涉及到使用I/O流(Input/Output Stream)来处理文件数据。本篇文章将深入探讨如何在Java中实现按顺序读取文件,以及涉及的相关知识点。 首先,Java提供...

    JAVA实现远程文件读取

    JAVA实现远程文件读取 JAVA是一种广泛应用于软件开发的编程语言,随着网络技术的发展,JAVA也提供了许多支持远程文件读取的功能,本文将详细介绍JAVA实现远程文件读取的知识点。 1. Socket 编程 在JAVA中,Socket...

    java 文件切割合并

    1. 创建目标文件:确定合并后文件的保存位置。 2. 循环合并:对每个需要合并的小文件,使用FileInputStream打开,然后使用FileOutputStream写入目标文件。 3. 关闭流:最后关闭所有打开的流。 以下是一个简单的文件...

    java线程池使用后到底要关闭吗

    在使用java线程池时,通常有两种形式:第一种,请求不是很频繁,而且每次连接后会保持相当一段时间来读数据或者写数据,最后断开,如文件下载,网络流媒体等。另一种形式是请求频繁,但是连接上以后读/写很少量的...

    Java文件下载,Java文件下载中文乱码,Java通用文件下载

    Java文件下载涉及到将服务器上的文件传输到客户端,例如浏览器。这个过程可能会遇到一些问题,如中文乱码,这是由于字符编码不匹配导致的。本文将深入探讨Java文件下载的实现方式以及如何解决中文乱码问题。 首先,...

    java文件分割合并

    在Java编程语言中,文件操作是常见的任务之一,特别是在处理大型文件时,有时我们需要将大文件分割成多个小文件,以便于传输、存储或者优化处理效率。同样,我们也可能需要将这些小文件重新合并成原始的大文件。在这...

    Java 文件追加操作

    在Java编程语言中,文件追加操作是一种常见的文件处理任务,尤其在日志记录、数据存储或更新场景中。本文将深入探讨如何在Java中执行文件追加操作,并提供相关示例代码,以便您理解和应用。 一、Java 文件操作基础 ...

    java写文件固定大小为2G

    下面我们将深入探讨如何实现这一目标,以及相关的Java文件读写技术。 首先,Java提供了一系列的文件I/O类,如`java.io.File`、`java.io.FileOutputStream`和`java.io.BufferedWriter`,用于创建、写入和管理文件。...

    java上传文件jar

    在Java开发中,上传文件是一项常见的任务,尤其是在构建Web应用程序时。标题提到的"java上传文件jar"实际上指的是两个关键的Java库,它们是Apache Commons IO和Apache Commons FileUpload。这两个库提供了强大的文件...

    java保存文件到数据库

    在Java编程中,将文件保存到数据库是一种常见的需求,特别是在处理图像、文档和其他非结构化数据时。这个过程涉及到将文件转换为二进制数据,然后将这些数据存储到数据库的特定字段中,通常是一个BLOB(Binary Large...

Global site tag (gtag.js) - Google Analytics