java程序在执行时,用软件结束改程序,并不是在程序里面退出。如何表示是用软件退出的?

我的软件中在程序内有个变量,如果在程序中正确退出,我会保留一个变量,保存在本地然后下次再用,我如何用软件强行退出我就得不到这个变量的返回值了,下次运行就会出错,如何在软件... 我的软件中在程序内有个变量,如果在程序中正确退出,我会保留一个变量,保存在本地然后下次再用,我如何用软件强行退出我就得不到这个变量的返回值了,下次运行就会出错,如何在软件退出的时候保留这个变量方便下次使用
上面打错字了,看下面这个

我的软件中在程序内有个变量,如果在程序中正确退出,我会保留一个变量,保存在本地然后下次再用,我如果用软件强行退出我就得不到这个变量的返回值了,下次运行就会出错,如何在软件退出的时候保留这个变量方便下次使用
展开
 我来答
雪飞潇潇
推荐于2017-10-12 · TA获得超过6274个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:863万
展开全部

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;

public class SaveDemo extends JFrame {
JTextField jtf;
JLabel jl1, jl2;
static 拦升滚final String filePath = "c:\\save.txt";

public SaveDemo() {
jl1 = new JLabel();
jtf = new JTextField(10);
jl2 = new JLabel("在文本框输入数据,关闭窗口会自动保存数据到本地,方便下次读取");
add(jl1,BorderLayout.NORTH);
add(jl2);
add(jtf,BorderLayout.SOUTH);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {//关闭窗口前,先保存数据,然后退出简余
try{
BufferedWriter bw = new BufferedWriter(new FileWriter(filePath));
bw.write(jtf.getText());
bw.close();
}catch(Exception e1){

}
System.exit(0);
}

@Override
public void windowOpened(WindowEvent e) {//打开窗口前,先读取数据
try {
BufferedReader br = new BufferedReader(new FileReader(filePath));
StringBuilder sb = new StringBuilder();
String temp;
while ((temp = br.readLine()) != null) {
sb.append(temp);
}
br.close();
jl1.setText("上次保存到本地的数据:"+sb.toString());
} catch (Exception 笑灶e1) {

}
}
});
setSize(390, 120);
setLocationRelativeTo(null);

}

public static void main(String[] args) {
new SaveDemo().setVisible(true);
}
}
更多追问追答
追问
我知道如何保存数据,我的意思是说
i++;
system.exit(0);
这是在程序里面运行的,如果我不是按程序流程结束,而是在myeclipse里面点叉结束,就不执行这句话,我的i就不会加1,下次运行的时候就会出错了。
追答

那更简单了, 按流程执行,就在执行完所有流程后 写保存的代码 啊

或者使用Scanner 当户输入 exit ,你就调用 保存变量 到本地 ,然后System.exit(0);

import java.io.BufferedWriter;
import java.io.FileWriter;

public class DeD{
public static void main(String[] args) throws Exception {
int i;
for (i = 0; i < 8; i++) {
Thread.sleep(1000);
System.out.println(i);
}
 BufferedWriter bw = new BufferedWriter(new FileWriter("c:\\abc.txt"));
         bw.write(i+"");
         bw.close();
}
}
萢萢i3
2015-12-07 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.7万
采纳率:71%
帮助的人:4625万
展开全部
退出前把变量值存入文件
下次打开软件是读取文件中的变量进行判断
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式