JAVA如何长期保存变量

hahajing0411 2008-09-03 10:47:00
我要用JAVA做一个可执行程序,开始要对变量进行定义初始化,然后根据需要对变量进行赋值,我希望在可执行程序关闭后变量被赋予的值仍然能够保存在变量中,下次启动可执行程序这个值不被初始化改变,请教如何实现?
...全文
987 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
hahajing0411 2008-09-04
  • 打赏
  • 举报
回复
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;
ZiSheng 2008-09-04
  • 打赏
  • 举报
回复
存入文件
swoky 2008-09-04
  • 打赏
  • 举报
回复
...
上面写的那个肯定通不过了,我只是给个思路罢了,代码还是要你自己写的
至于可能出现的错误
try{
}catch(){
}
就行了
hahajing0411 2008-09-03
  • 打赏
  • 举报
回复
一楼能不能说的详细些
网络咖啡 2008-09-03
  • 打赏
  • 举报
回复
持久存储啊,每次把变量保存起来,下次启动的时候导入
cydp007 2008-09-03
  • 打赏
  • 举报
回复
你把你的变量值 保存在 另外一个txt文件里面.

然后用Java去从txt文件里面读值或者 写值.

API: java.io.参考下.FileReader FileWriter 之类的几个类就好.

单独一个Java文件是不能持久化的.
wesleyJava 2008-09-03
  • 打赏
  • 举报
回复
java 的变量内容是存在内存中的,你要想退出程序后仍然保存这个值就必须把这个值写到磁盘上,也就是写到文件中。
swoky 2008-09-03
  • 打赏
  • 举报
回复
序列化就行了
hahajing0411 2008-09-03
  • 打赏
  • 举报
回复
对10楼的代码编译通不过,首先出现了“在静态上下文中不能引用非静态方法”的问题,将第一行写成:
public static class AA implements Serializable
问题解决,后来又出现:“未报告异常***必须被捕获或被声明抛出”问题,实在头痛。
hahajing0411 2008-09-03
  • 打赏
  • 举报
回复
谢谢10楼前辈指教,也十分感谢其他朋友的帮助,10楼内容很详细,不过还有一个疑问就是如果读取时文件不存在怎么处理?
sunzhyng 2008-09-03
  • 打赏
  • 举报
回复
写运行期配置文件,类似windows下的ini文件的用途

运行前读取配置
davidzhang0821 2008-09-03
  • 打赏
  • 举报
回复
做一字符串=“”,用CLASSLOADER导入,然后初次使用应用程序时赋值;
当程序再次被调用时,去检测字符串是否为“”。
swoky 2008-09-03
  • 打赏
  • 举报
回复

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中的值了
mengweilil 2008-09-03
  • 打赏
  • 举报
回复
数据库

java自带derby数据库。

work4ideal 2008-09-03
  • 打赏
  • 举报
回复
把数据写入本地磁盘吧.
ZangXT 2008-09-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 swoky 的回复:]
序列化就行了
[/Quote]
yoyo82 2008-09-03
  • 打赏
  • 举报
回复
存文件或数据库!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧