java - 在这种情况下保存响应集的更好方法是什么?

标签 java arrays save

我正在用 Java 构建一个 CLI 调查应用程序,让用户可以回答多项选择题。请告诉我如何改进我的方法。

问题的每个答案都记录为一个整数,它是该选项在该问题的选项数组中的索引。调查的所有答案都保存为一个 int 数组。我正在考虑使用 ObjectOutputStream 序列化这个 int 数组。然后当我需要显示结果时,我将恢复数组并在制表符后打印每个元素。

这种方法的问题是(我相信)第二组响应会覆盖第一组。我想到了两种选择,这两种选择都听起来很糟糕。一种是将每个响应集保存到一个单独的文件中。但是到了显示时间,我将不得不一次阅读所有文件,以便将对同一问题的回答放在一起。另一种是将 int 数组保存为纯文本文件中的制表符分隔行(因此每个响应集都会换行),然后将其标记化并解析回 int 数组以进行显示。但是标记化/解析代码读起来很恐怖(目前看起来像这样):

编辑:糟糕,这段代码甚至都不正确。我的观点只是解析是一团糟,所以我正在寻找一种不必解析的方法。

File savedResults = new File(Main.surveyResultsFolder, surveyFileName);
try {
    BufferedReader br = new BufferedReader(new FileReader(savedResults));
    int[] currentResponseSet = new int[noOfQuestions];
    String currentResponseString = "";
    String[] currentResponseStrArray = null;
    while((currentResponseString = br.readLine()) != null) {
        currentResponseStrArray = currentResponseString.split("\t");

    for (int i = 0; i < currentResponseStrArray.length; i++) {
        currentResponseSet[i] = Integer.parseInt(currentResponseStrArray[i]);
}
    }
     //then I'll print currentResponseSet here.
    }
catch (IOException ex) {
    System.out.println("Error reading results file " + surveyFileName);
}

我没主意了。如您所见,我对数据处理技术的了解有限。有没有人要?

最佳答案

最明显的做法是将其保存到数据库中。然后存储和检索就非常简单了。

如果您出于某种原因无法做到这一点,那么我认为您目前的解决方案就是可行的方法。你的解析代码对我来说看起来很简单。我会创建一个单独的函数来解析一行,该行返回一行的响应数组,然后让调用者做任何需要做的事情,只是为了干净的模块化。

关于java - 在这种情况下保存响应集的更好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3789037/

相关文章:

arrays - F#匹配数组的开头

python - 将 "string"作为原始二进制文件写入 Python 文件

arrays - Bash 中的多维数组

java - 如果字符串以分号结尾,则从字符串中删除分号

java - 未找到 H2 bundle 依赖项

java - 在 mongodb 集合中找到一些值?

c++ - 是否可以使用字符串或字符来索引数组?

java - 保存用反射修改的类的字节码

JavaScript 将元素另存为图像或 Extjs 4.x 另存为图像

java - do while 循环..如果给出正确的输入则继续