首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用序列化存储实例

使用序列化存储实例
EN

Stack Overflow用户
提问于 2015-12-13 05:54:02
回答 1查看 202关注 0票数 0

我正在制作一个程序,需要保存对象以便在将来的某个日期进行检索。这个程序将作为一个jar文件分发给不同的人。

当给对象输入/输出流一个绝对路径(String)作为参数时,我已经可以存储和检索类的实例。我还可以将图像和文本文件保存在“资源”文件夹中,并使用getClass().getResource(String path)将其作为资源。

问题是:我已尽一切可能将对象保存到/从资源文件夹中获取对象。处理URLS和文件变得非常奇怪,而不是普通的String。有人能帮帮我吗?我需要能够保存和检索相对于类路径的对象,以便在程序是保存在计算机上不同路径中的jar文件时访问对象。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-13 09:02:18

1:资源文件夹(在jar中)是只读的.

您可以创建数据,在打包时存储在jar中,但是之后,它就完成了:只有读取

他说:所以你想让用户可以读写(而且它没有嵌入到你的应用程序中)。

  • 如果是个人数据,您可以使用(用于PC): String appdata= System.getenv("APPDATA");System.out.println(appdata);String dataFolder = System.getProperty("user.home") +“\LOCALAPPDATA\ApplicationData”;System.out.println(dataFolder);String dataFolder2 = System.getenv("LOCALAPPDATA"); System.out.println(dataFolder2);

在我的电脑上,它给出:

代码语言:javascript
运行
复制
C:\Users\develop2\AppData\Roaming

C:\Users\develop2\Local Settings\ApplicationData

C:\Users\develop2\AppData\Local

参见:What is the cross-platform way of obtaining the path to the local application data directory?

  • 它适用于每个人,同样的原则,但你可能会遇到安全问题。

就像这样:

代码语言:javascript
运行
复制
String programdata = System.getenv("PROGRAMDATA");
System.out.println(programdata);
String allusersprofile = System.getenv("ALLUSERSPROFILE");
System.out.println(allusersprofile); // same thing !
String publicdir = System.getenv("PUBLIC");
System.out.println(publicdir);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34248404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档