深入浅出解释Java中的close()方法

新手上路,请多包涵

我学习了一个 java 教程,该教程允许我创建一个文本文件并在其中写下“20 Bruce Wayne”。在主类中调用的最后一个方法名为 closeFile(),它会在文本文件创建后“关闭”它。

如果我没有真正打开文件,为什么需要“关闭”文件? “打开”是指记事本编辑器(不是我正在使用的 IDE)弹出“20 Bruce Wayne”字样。请通俗地回答我的问题。

主要.java:

 class apple {
    public static void main(String[] args)
    {
        createfile g = new createfile();
        g.openFile();
        g.addRecords();
        g.closeFile();
    }
}

创建文件.java

 public class createfile {
    private Formatter x;

    public void openFile(){
        try{
            x = new Formatter("supermanvsbatman.txt");
        }
        catch(Exception e){
            System.out.println("you have an error");
        }
    }
    public void addRecords(){
        x.format("%s%s%s","20 ", "Bruce ", "Wayne ");
    }
    public void closeFile(){
        x.close();
    }
}

原文由 user701510 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 998
2 个回答

当一个文件被“打开”时,操作系统将该文件标记为已锁定,通常这样它就不能被其他进程在使用时删除。 x.close() 解除锁定,允许操作系统和其他进程对文件做它想做的事。

原文由 user481081 发布,翻译遵循 CC BY-SA 3.0 许可协议

除了 Sold Out Activist 的回答之外,当您使用 i/o 操作(例如文件)时,您正在使用流向文件添加文本,或从文件中提取文本。当您退出程序时,必须使用方法 close() 关闭此流,因为您可能会丢失数据。这就像一个保存操作,如果你不保存你的文件(关闭流),你将丢失对文件所做的更改。

请参阅此 示例

原文由 Alberto Solano 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题