我要用JAVA做一个可执行程序,开始要对变量进行定义初始化,然后根据需要对变量进行赋值,我希望在可执行程序关闭后变量被赋予的值仍然能够保存在变量中,下次启动可执行程序这个值不被初始化改变,请教如何实现?

解决方案 »

  1.   

    java 的变量内容是存在内存中的,你要想退出程序后仍然保存这个值就必须把这个值写到磁盘上,也就是写到文件中。
      

  2.   

    你把你的变量值 保存在  另外一个txt文件里面.然后用Java去从txt文件里面读值或者 写值.API:  java.io.参考下.FileReader  FileWriter  之类的几个类就好.单独一个Java文件是不能持久化的.
      

  3.   


    public class AA implements Serializable{
    int x = 5;
    int y = 6;
    .........
    }
    FileOutputStream fos = new FileOutputStream("C:\\...");
    ObjectOutputStream out = new ObjectOutputStream(fos);
    AA a = new AA();
    out.writeObject(a);
    //这样a中的变量就保存下来了,只是变量,不保存方法的//读取时
    FileInputStream fis = new FileInputStream("C:\\...");
    ObjectInputStream in = new ObjectInputStream(fis);
    AA a = (AA)in.readObject();
    //可以取a中的值了
      

  4.   

    做一字符串=“”,用CLASSLOADER导入,然后初次使用应用程序时赋值;
    当程序再次被调用时,去检测字符串是否为“”。
      

  5.   

    写运行期配置文件,类似windows下的ini文件的用途运行前读取配置
      

  6.   

    对10楼的代码编译通不过,首先出现了“在静态上下文中不能引用非静态方法”的问题,将第一行写成:
    public static class AA implements Serializable
    问题解决,后来又出现:“未报告异常***必须被捕获或被声明抛出”问题,实在头痛。
      

  7.   

    ...
    上面写的那个肯定通不过了,我只是给个思路罢了,代码还是要你自己写的
    至于可能出现的错误
    try{
    }catch(){
    }
    就行了
      

  8.   

    public class crt
    {
    public static class AA implements Serializable
    {
    static int CRF[] = new int[200];
    }
       public static void wrf(String fpw)
      {
        try{FileOutputStream fos = new FileOutputStream(fpw);
            ObjectOutputStream out = new ObjectOutputStream(fos);
            AA a = new AA();
            out.writeObject(a);}catch (IOException e) {e.printStackTrace();}
      }   public static void rdf(String fpr)
      {
        try{FileInputStream fis = new FileInputStream(fpr);
            ObjectInputStream in = new ObjectInputStream(fis);
            AA a = (AA)in.readObject();}catch (IOException e) {crt.wrf(fpr);}
            catch (ClassNotFoundException e){crt.wrf(fpr);}  }public static void main(String[] args)
    {
     String fp1="C:\\Program Files\\CS.txt";crt.wrf(fp1);
    System.out.println(AA.CRF[1]);
    AA.CRF[1]=46849;
    crt.rdf(fp1);
    System.out.println(AA.CRF[1]);
    }
    }
    以上代码调试通过,可是不能将内容写入文件,理由是屏幕输出的是 0,46849;而正确的应该是0,0;