java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java中.close()

Java中的.close()举例详解

作者:超级大只老咪

.close()方法只适用于通过window.open()打开的弹出窗口,对于浏览器的主窗口,如果没有得到用户允许是不能关闭的,这篇文章主要介绍了Java中的.close()的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

当你遇到以下三种情况时,一定要记得使用 .close():

1.操作文件

2.访问网络

3.连接数据库

用法

.close()是一种方法,所以一般是 对象.close()来调用的

作用

.close() 的作用就是释放程序占用的外部资源(如文件、网络连接),把它们“还给”操作系统,以避免资源浪费和程序崩溃。

个人理解:.close() 的本质是“有借有还”。当你向操作系统“借用”了一个外部资源(比如打开一个文件),你就有责任在用完后通过 .close() 归还它。

举例

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
    Scanner input = new Scanner(System.in);
    String i = input.nextLine();
    int a = Integer.parseInt(i);
    System.out.println(a);
    }
}

这是一个简单的实现输入功能的代码,就以这个代码举例(之前发过一个“Java如何实现输出”里面有详细讲解)

如何判断代码中的 input 对象要不要用到 .close()?

我们可以遵循一个简单的两步判断流程:

第一步:查看对象的类定义(是否声明有implements AutoCloseable或 implements Closeable)

示例代码中对象为‘input’,因为这个对象是根据“Scanner”这个类创造出来的,所以它的类是“Scanner”,长按“Ctr”鼠标放在“Scanner"上面,查看它的声明中有没有有没有 implements AutoCloseable 或者 implements Closeable?

第二步:“关闭”是我的责任吗?

只有通过了第一步的对象,才需要进行这一步的审查。

  • 小知识:什么是“标准I/O流”?
    • “标准I/O流”(Standard I/O Streams)是计算机领域的一个基础概念,你可以把它理解为程序与外界沟通的三条默认通道

    • 标准输入 (Standard Input):程序默认的数据来源通道。在Java里,它就是 System.in,通常连接到键盘

    • 标准输出 (Standard Output):程序默认的正常信息出口通道。在Java里,它就是 System.out,通常连接到屏幕

    • 标准错误 (Standard Error):程序默认的错误信息专用出口通道。在Java里,它就是 System.err,也通常连接到屏幕

import java.io.File;
import java.util.Scanner;

// 从文件读取,就必须关闭
try (Scanner fileScanner = new Scanner(new File("data.txt"))) {
    while (fileScanner.hasNextLine()) {
        System.out.println(fileScanner.nextLine());
    }
} catch (FileNotFoundException e) {
    System.err.println("文件未找到!");
}
// 当 try 块结束时,fileScanner 会被自动、安全地关闭

总结

到此这篇关于Java中的.close()的文章就介绍到这了,更多相关Java中.close()内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文