java流关闭详细代码,java关闭流的方法

java 如何实现点击关闭后 关闭窗口 求详细代码

方法一:

创新互联主要从事成都网站建设、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务四平,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

类 JFrame

javax.swing.JFrame

JFrame中的方法void setDefaultCloseOperation(int)可以设置

以下为改方法的用法:

setDefaultCloseOperation

public void setDefaultCloseOperation(int operation)设置用户在此窗体上发起

"close" 时默认执行的操作。必须指定以下选项之一:

DO_NOTHING_ON_CLOSE(在 WindowConstants 中定义):不执行任何操作;要求程序在已注册的

WindowListener 对象的 windowClosing 方法中处理该操作。

HIDE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册的 WindowListener

对象后自动隐藏该窗体。

DISPOSE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册 WindowListener

的对象后自动隐藏并释放该窗体。

EXIT_ON_CLOSE(在 JFrame 中定义):使用 System exit

方法退出应用程序。仅在应用程序中使用。

默认情况下,该值被设置为 HIDE_ON_CLOSE。更改此属性的值将导致激发属性更改事件,其属性名称为

"defaultCloseOperation"。

注:当 Java 虚拟机 (VM) 中最后一个可显示窗口被释放后,虚拟机可能会终止

要实现你说的,应该采用

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

方法二:

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

public class Test extends JFrame {

public Test(){

this.setTitle("title");

this.setSize(300,200);

this.setLocation(100,100);

//设置关闭时什么也不做

this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);

//监听关闭按钮的点击操作

this.addWindowListener(new WindowAdapter(){

//new 一个WindowAdapter 类 重写windowClosing方法

//WindowAdapter是个适配器类 具体看jdk的帮助文档

public void windowClosing(WindowEvent e) {

//这里写对话框

if(JOptionPane.showConfirmDialog(null,

"退出","提

示",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)==JOptionPane.YES_OPTION){

System.exit(0);

}

}

});

this.setVisible(true);

}

public static void main(String[] args) {

new Test();

}

}

分享

java中IO流操作怎样关闭流

如果 in == null,就说明 in这个引用所指向的对象还没有被创建,自然 in.close()也就不可能被执行,而且会报异常。我是这样想的,程序中 如果你先声明变量

InputStream(或者其他流类型) in = null;

然后执行其他语句,再 in = new 、、、、

在in new之前其他语句出exception,这时流没有被打开,也就无需关闭,如果不判断if(null != in) 硬要关闭in就出exception

另外你的代码按如下写会更合理:

if(null != in){

try{

in.flush();

in.close();

in = null;

}

catch(IOExection e){};

}

关于java中io流的关闭问题,部分代码,这种情况用不用关闭new FileReader(file)?

是的,你的new FileReader(file)是一个匿名对象。

JVM中对于那些打开了没有关闭的IO文件流,会在不再被使用的情况下,等到下次做Full GC的时候把他们全部回收,尽量少使用这种写法。文章来自:

java直接return的文件流如何关闭

代码如下:

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

public class App {

public static void main(String[] args) throws IOException {

// 第一种方式,稍嫌麻烦

FileOutputStream outputStream = null;

try {

outputStream = new FileOutputStream(new File("data.txt"));

outputStream.write(new byte[] { 0x11, 0x22, 0x33, 0x44 });

// 在这里可以直接 return, 会调用 finally 中的代码

} finally {

if (outputStream != null) {

try {

outputStream.close();

} catch (IOException e) {

}

}

}

// 第二种方式,比较简洁,不用显式调用 close(), 会自动调用 close();

try (FileInputStream inputStream = new FileInputStream(new File("data.dat"))) {

byte[] buf = new byte[4];

inputStream.read(buf);

// 可以在这里调用 return ,在这个{}代码块结束时,close 会自动执行,

}

}

}


网站题目:java流关闭详细代码,java关闭流的方法
网站地址:http://ybzwz.com/article/dseeohh.html