在java中存储永久数据的方法

时间:2010-08-27 11:45:49

标签: java storing-information

我目前正在进行编程任务,它说我们应该 “将所有数据存储在数据文件中,并且需要检查用户PIN和帐户号码有效性的兼容性”

不幸的是,我的讲师没有教我们数据文件,当我用Google搜索时,我发现了两个不同的答案,

  1. 将数据存储在记事本(.txt)文件中
  2. 将数据存储在csv文件中
  3. 我的问题是哪一个是数据文件?以及如何检索用户PIN(从缓冲区读取器输入后)以检查两者是否正确? 任何帮助是极大的赞赏!!

4 个答案:

答案 0 :(得分:2)

最简单的方式是使用Properties类。它存储键/值对,并可以将数据持久保存到属性文件中。这是一个有效的例子:

Properties p = new Properties();
p.setProperty("johndoe.pin", "12345");
p.store(new FileWriter("myfile.properties", "");

并阅读:

Properties p = new Properties();
p.load(new FileReader("myfile.properties", "");

将使用属性对象进行检查:

public boolean isValid(String user, String pin) {
  return pin.equals(p.getProperty(user + ".pin"));
}

很容易当然没有加密。该文件以纯文本形式存储,包括PIN。

答案 1 :(得分:1)

来自维基百科的

  

数据文件是一个计算机文件   存储供计算机使用的数据   应用程序或系统。

因此*.txt文件和*.csv文件都是数据文件。

*.csv(逗号分隔值)文件实质上是*.txt文件,用,

分隔您的值

您找到的两种方法应该大致相同,但使用csv方法会更容易。

答案 2 :(得分:0)

无论是txt还是csv都无关紧要。您甚至可以将其保存在xml中。 不要混淆文件扩展名。您唯一应该关心的是“如何保存/加载这些数据”。

  1. 要保存.txt很好,但您可能需要定义自己的“格式”,以确保可以加载该数据。
  2. 如果将其保存在.csv中也很不错,因为您不必创建自己的“格式”。只需遵循几种遗留格式,如分隔符,封装等。
  3. 以另一种格式保存也很好。例如,XML。但是,再次,您需要遵循XML中的遗留格式,如DTD。
  4. 祝你好运

答案 3 :(得分:0)

序列化是持久存储的另一种方法 您可以创建一个实现Serializable的类,其中包含要存储的每个数据的字段。然后,您可以将整个类写入文件,稍后您可以将其读回。我相信Serializable接口将类输出为某种二进制/十六进制表示。

在不使用标准Java序列化的情况下,还有其他方法可以进行序列化,就像您可以使用JSON库一样。