【发布时间】:2013-12-16 15:45:51
【问题描述】:
我一直在为我的爱好游戏开发服务器,我终于准备好实现加载/保存,我正计划为服务器/客户端做一个教程系列(创建一个多人 2d 游戏)所以我想要通过文本文件进行播放器加载器/保存,所以我不需要 SQL 和 JDBC 教程。
创建帐户时,这是保存到文本文件中的内容
writer.println("// Account Name");
writer.println("[Username] = " + username);
writer.println("[Password] = " + password);
writer.println("// Player Data");
writer.println("[PlayerX] = 0.0");
writer.println("[PlayerY] = 0.0");
但是,我想在存储时跳过存储密码的行,以便在登录时处理密码值。
所以,在我的保存代码中,你可以看到我有这个
Misc.log("Saving Character File for user: " + username);
writer = new PrintWriter(accountDir + username+".txt", "UTF-8");
writer.println("// Account Name");
writer.println("[Username] = " + username);
writer.println("// Player Data");
writer.println("[PlayerX] = " + p.getX());
writer.println("[PlayerY] = " + p.getY());
writer.close();
现在,显然,删除那行代码对我没有任何帮助,但我真的不知道应该如何“跳过”那行,我考虑使用 BufferedReader 来读取每个写之前的一行,然后如果该行以“[密码]”开头则返回,但是,我认为这真的很无用。
你们会为此推荐什么?你能用 Psuedo(或者只是普通的......?)代码写出来给我,这样我就可以完成这个了。
【问题讨论】:
-
但是。但。但是您永远不会存储明文密码,对吗?使用哈希码!
-
仅供参考,保存明文密码是一个坏主意™。我意识到这是一种爱好,所以你可能不在乎,但如果你这样做,stackoverflow.com/questions/7017688/…
-
你的问题我还是有点不清楚。您想保存密码然后不保存密码吗?不知道你说的
skipping a line是什么意思,但是如果不保存密码,用户下次怎么登录呢? -
我很清楚存储这个 raw 是一个可怕的想法,但是目前它只是用于学习目的,我以后会担心安全性。我所说的“跳过”是我不想在那条线上写字。所以,我会写在第 [1,2,3,5,6] 行(跳过第 4 行)
-
如果我理解正确的话,问题是在跳过密码后从用户数据文件中读取数据,因为数据是原始数据,需要正确解析才能获取每个数据。