将答案保存在文本文件中
Posted
技术标签:
【中文标题】将答案保存在文本文件中【英文标题】:Saving answers in textfile 【发布时间】:2014-05-09 13:43:31 【问题描述】:有没有办法在文本文件 (.txt) 中“保存”用户数据并重新使用它们?我在 C# Visual Studio 2013 (WFA) 中编程 不允许使用数据库/XML 文件!
例如,我编写了一个包含几个问题的测验。当我开始测验并给出一些正确和错误的答案时,我需要能够保存我的答案,查看我的正确/错误答案,并且我必须能够重试我的错误答案。
【问题讨论】:
是的,这当然是可能的。你试过什么吗?了解如何处理文件? 在 google 中输入c# text files
肯定比在这里输入这个问题要快得多。
Sinatr 说的是真的,虽然我倾向于相信你不知道该输入什么,并且根据你的问题,正确的东西被称为流阅读器和流作家,有很多网络上的教程和示例,但如果您发现自己在此过程中遇到困难,请发表评论。我会帮助你的,祝你好运!
【参考方案1】:
网上有很多关于如何做到这一点的例子,而且我确信堆栈溢出的例子也很多。
要从 .txt 文件中读取,请检查此内容
Reading textFile and saving the info into an array C#
要写入文本文件,请查看
Saving from List<T> to txt
【讨论】:
【参考方案2】:简短的回答是肯定的。长答案也不错。假设我们像这样构造一组类:
public class Quiz
public List<Question> Questions get; set;
public Quiz() Questions = new List<Question>();
public class Question
public string Question get; set;
public bool Answer get; set;
现在假设 UI 为测验构建了一个很好的问题集合,并且随着时间的推移将答案设置为真或假,是或否有你,所以最后我们需要保存它:
File.WriteAllText(path, JsonConvert.SerializeObject(quiz));
这会将整个测验和问题以 JSON 格式保存到文件路径中。
现在我们需要重新加载;这就是我使用 JSON 的原因:
var quiz = JsonConvert.DeserializeObject<Quiz>(File.ReadAllText(path));
对对象进行更新(即答案更改)后,您可以再次运行:
File.WriteAllText(path, JsonConvert.SerializeObject(quiz));
注意:很明显(或者应该很清楚)每个测验都需要自己的文件。
注意:这还需要您获得Json.NET NuGet package,它可以与NuGet Visual Studio Extension 一起安装。
【讨论】:
以上是关于将答案保存在文本文件中的主要内容,如果未能解决你的问题,请参考以下文章