【问题标题】:Skipping a line while writing to a text file写入文本文件时跳过一行
【发布时间】: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 行)
  • 如果我理解正确的话,问题是在跳过密码后从用户数据文件中读取数据,因为数据是原始数据,需要正确解析才能获取每个数据。

标签: java io nio


【解决方案1】:

我的建议是在 Java 中使用 Properties 并创建属性文件以轻松访问和保存数据。

例如:

Properties userData;
userData.load(in) // in is inputsteam or Reader of the user file
// Save the username
userData.setProperty("username", "dARKpRINCE");
// Get the username
userData.getProperty("username")
// Save the property file
userData.store(out, "Saved on Exit"); // out is outputstream or writer of the user file

这样您就不会因为跳过任何要保存的数据或添加新数据而遇到问题。

【讨论】:

  • 我要试试这个,看看我能做什么。
  • 你推荐的肯定会起作用,我只需要花时间弄清楚如何正确使用它。 (保存到文件等)
  • 如果它有效,请不要忘记将其标记为正确/有用的答案。 :)
猜你喜欢
  • 1970-01-01
  • 2016-01-31
  • 2021-06-28
  • 1970-01-01
  • 2015-03-20
  • 2011-02-17
  • 1970-01-01
  • 2013-10-18
  • 1970-01-01
相关资源
最近更新 更多