使用 Java/Maven 将数据存储在文本文件中
Posted
技术标签:
【中文标题】使用 Java/Maven 将数据存储在文本文件中【英文标题】:Storing data in text files with Java/Maven 【发布时间】:2020-07-03 10:30:54 【问题描述】:我编写了一个用于分析 .csv 文件的小型 Java 应用程序。现在我想继续读取和写入 .txt 文件,该文件的作用类似于小型数据库。为此,我只是在我的项目中添加了 .txt 并使用了 Files.readString(Path) 和 Files.write(Path path, byte[] bytes) 方法。
当我在 IntelliJ 中执行此操作时,我没有任何问题,但是一旦我使用 Maven 构建/导出文件并从创建的启动器开始,应用程序就无法工作,因为项目结构/文件组织不再相同.
之后我还尝试将 .txt 文件添加到导出的文件夹中,但即便如此我也无法实现文件的相对路径。
我对编程还是比较陌生,而且它只是一个小应用程序,所以我认为 mysql 不能满足我的需求。我还读到我可以将数据存储在属性文件中,但我不知道这是否是归档我想要的内容的正确方法。当然,必须有可能以某种方式在导出的项目中保留一个用于读写的 .txt。有人有想法吗?
【问题讨论】:
【参考方案1】:如果您使用 ´*.txt` 文件进行存储,则该文件不能在 jar 中,因为 jar 在运行时无法更改其内容。
您需要将文件放在其他地方,或者放在某个专用位置(让用户选择/配置一个),或者放在 jar 旁边。要弄清楚自己的执行路径,可以使用
How to get the path of a running JAR file?
【讨论】:
感谢您的回答!我设法修复它。我只是将一个文件夹放在与 .jar 文件相同的目录中,然后从包含 .jar 的目录启动路径。所以我只需要使用 Path.of("resources/database.txt")。原来我的问题实际上是将所有内容放在一个可执行的 .jar 文件中。不过,我仍然必须在 .bat 文件中使用以下命令启动它:java --module-path javafx-sdk-11.0.2\lib --add-modules=javafx.controls,javafx.fxml -jar csvTool1.2。 jar 你知道我怎么能以某种方式将它实现到 .jar 中吗?【参考方案2】:Maven 是一个棘手的工具。您需要转到 pom 文件并添加资源。 Unable to add resources to final jar for maven project in Intellij.
-我希望这会有所帮助 交易员
【讨论】:
以上是关于使用 Java/Maven 将数据存储在文本文件中的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Java 和 JDBC 在 h2 数据库中存储文本文件?