我目前正在做一个编程作业,它说我们应该“将所有数据存储在一个数据文件中,并需要检查用户 PIN 和帐号的兼容性。有效性”
不幸的是,我的讲师没有教我们数据文件,当我用谷歌搜索时,我发现了两个不同的答案,
- 将数据存储在记事本 (.txt) 文件中
- 将数据存储在 csv 文件中
我的问题是哪个是数据文件?以及如何检索用户 PIN(在从缓冲区阅读器中输入后)以检查两者是否正确?任何帮助是极大的赞赏!!
我目前正在做一个编程作业,它说我们应该“将所有数据存储在一个数据文件中,并需要检查用户 PIN 和帐号的兼容性。有效性”
不幸的是,我的讲师没有教我们数据文件,当我用谷歌搜索时,我发现了两个不同的答案,
我的问题是哪个是数据文件?以及如何检索用户 PIN(在从缓冲区阅读器中输入后)以检查两者是否正确?任何帮助是极大的赞赏!!
来自维基百科:
数据文件是存储数据以供计算机应用程序或系统使用的计算机文件。
所以*.txt
文件和*.csv
文件都是数据文件。
(*.csv
逗号分隔值)文件本质上是一个*.txt
文件,它通过,
您找到的 2 种方法应该做的差不多,但使用 csv 方法会更容易。
最简单的方法是使用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。
不管是txt还是csv。您甚至可以将其保存在 xml 中。不要与文件扩展名混淆。您唯一应该关心的是“如何保存/加载这些数据”。
祝你好运
序列化是另一种持久存储的方法。
您可以为要存储的每条数据创建一个实现 Serializable 的类,其中包含一个字段。然后你可以把整个类写到一个文件中,你可以稍后再读回来。我相信 Serializable 接口将类输出为某种二进制/十六进制表示。
还有其他方法可以在不使用标准 Java 序列化的情况下进行序列化,例如可以使用 JSON 库。