【发布时间】:2018-03-17 07:28:50
【问题描述】:
我有一个创建 2 个 txt 文件的代码。它可以工作。但是当我将我的应用程序打包到 .jar 文件时,我找不到我的 txt 文件并且我的应用程序无法读取它们。
try {
KeyGenerator kg = KeyGenerator.getInstance("DESede");
SecretKey key = kg.generateKey();
Cipher cipher = Cipher.getInstance("DESede");
cipher.init(Cipher.ENCRYPT_MODE, key);
ObjectOutputStream oos = new ObjectOutputStream(new CipherOutputStream(new FileOutputStream("saves/data.ttg"), cipher));
oos.writeObject("" + CurrentMoney);
fos = new FileOutputStream("saves/key.ttg");
SecretKeyFactory skf = SecretKeyFactory.getInstance("DESede");
DESedeKeySpec keyspec = (DESedeKeySpec) skf.getKeySpec(key, DESedeKeySpec.class);
fos.write(keyspec.getKey());
fos.close();
oos.close();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
有什么问题?
PS 我使用 Intellij IDEA
P.P.S 这是 JavaFX 项目(如果它可以有所作为)
【问题讨论】:
-
文件将被添加到
.jar只有当它们在你的应用程序的构建路径上。您的应用是否应该只创建一次这些文件,然后永远重复使用它们? -
是的,应该创建一次。
-
请澄清:您是要在 jar 中打包文件并在运行时将它们读回,还是要在运行时将文件写入(到文件系统),然后再将这些文件读回?
-
在 prog 运行和稍后读取时尝试写入文件
-
可能工作目录与从 jar 文件运行时所期望的不同。你试着写信给
saves/key.ttg。如果当前工作目录中缺少saves目录,则不会创建它,因此保存/读取失败。