【问题标题】:Where and how to store text files for reading/writing在哪里以及如何存储用于读/写的文本文件
【发布时间】:2018-03-08 23:11:27
【问题描述】:

我有一个应用程序可以访问 csv 文本文件中的单词。由于它们通常不会更改,因此我将它们放在 .jar 文件中并使用 .getResourceAsStream 调用读取它们。我真的很喜欢这种方法,因为我不必将一堆文件放在用户的计算机上 - 我只有一个 .jar 文件。

问题是我想允许“管理员”在应用程序中添加或删除单词,然后将新版本的应用程序发送给其他用户。这种情况很少发生(99.9% 仅读取操作和 0.1% 写入)。但是,我发现无法写入 .jar 文件中的文本文件。有没有适合我想要的解决方案,如果有,请详细解释一下,因为我还是 Java 新手。

【问题讨论】:

  • 读取存储在 jar 外部的文件?这样用户/管理员就可以自己编辑文件了。
  • 听起来好像需要一个服务来集中管理单词列表。
  • 你的意思是像一个在线单词数据库吗?
  • 这是WEB应用还是桌面应用?您希望更改可见的速度有多快?您目前如何部署此应用?
  • 这是一个桌面应用程序,更改的速度对我来说并不是真正的关键(除非我怀疑它需要几个小时)而且我不太确定你对“如何做”的要求我部署它”,但我将应用程序导出到可运行的 jar 文件中。最好是离线工作,但我想在现代互联网中,我也可以使用在线解决方案。

标签: java jar text-files persistent-storage


【解决方案1】:

这是不可能的,因为您无法更改 JVM 当前使用的 jar 的任何内容。 更好地选择替代解决方案,例如将 jar 文件和文本文件保存在同一文件夹中

【讨论】:

  • 但这样所有用户都可以看到 csv 文件并能够通过文本编辑器直接对其进行编辑。另外,每当我想将应用程序发送给其他人时,我都必须复制所有文件,对吗?
  • 您可以添加数据库而不是文件以防止其他或在文件中使用一些加密算法
  • 嗯,你能指出我使用数据库的正确方向吗?写更多关于这个解决方案的信息或在他们讨论的地方发布一些其他问题?
  • 如果您正在创建一个在单机上运行的独立应用程序,请使用 MySQL 等静态数据库,或者使用 jar 外的文件并使用任何一种加密算法加密所有数据,这将允许您对用户隐藏数据
猜你喜欢
  • 2019-04-09
  • 2014-12-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-16
  • 1970-01-01
  • 2023-02-25
  • 1970-01-01
  • 2023-03-14
相关资源
最近更新 更多