【问题标题】:Save and Load an ArrayList Under Strings?在字符串下保存和加载 ArrayList?
【发布时间】:2015-04-30 23:21:14
【问题描述】:

我正在使用 PrintWriter 将 ArrayList 保存到文件中。我正在使用多个 ArrayList。是否可以在字符串下保存和加载 ArrayList?假设我想使用下面的字符串:

Admins
- ArrayList here.
- ArrayList here.
Bans
-
-
IPs
-
-

以上是我希望保存的文件的样子。

我正在使用扫描仪来加载 ArrayList。上面的字符串下是否可以加载ArrayList?

下面是我用来保存 ArrayList 的一些代码。

    public static void save()
    {
        String adminsConfigs1 = killAdmins.toString();

        try 
        {   
            PrintWriter pw1 = new PrintWriter(new FileOutputStream(FILE));

            pw1.write(adminsConfigs1);

            pw1.close();
          }
}

【问题讨论】:

  • 嗯,是的,我猜?我不认为你的例子真的很有帮助。包括你的代码怎么样?
  • 您的 ArrayList 中的项目是什么类型的数据?字符串?整数?对象?
  • @Veluria 这是一个使用 PrintWriter 和扫描仪的非常简单的代码。我会添加一些代码。
  • 您不能只打印(使用toString())带有任意数据的 ArrayList 并期望生成的文本有助于将数据重新加载回新的 ArrayList,您需要使用更多复杂的序列化,或protobuf等......
  • @morgano ArrayList 中存储的数据是 Bukkit 的 Players。另外,这不是我的完整代码。我在 ArrayList 中使用序列化。这只是ArrayList的保存。 ArrayList 工作正常,我已经测试过了。

标签: java arrays string arraylist


【解决方案1】:

不是一个确切的解决方案,但你应该明白:

您的存档可能类似于:

ArrayList<String>killAdmins; //or whatever
File saved_items = new File("saved.txt")
try {   
     PrintWriter pw1 = new PrintWriter(new FileOutputStream(saved_items));
        for(String item_to_save : killAdmins){
          pw1.append(item_to_save + "\n");
        } 
        pw1.append("-----------")
        pw1.close();
      }

然后加载您可以执行以下操作:

File saved_items = new File("saved.txt")
BufferedReader stream_in = new BufferedReader(new FileReader(saved_items));
String line;
ArrayList<String> list;
while((line = stream_in.readline)!=null){
       if(line.contains("-----------")){
              break;
        }
       list.add(line.trim());
}

【讨论】:

  • 像魅力一样工作!谢谢老哥!
【解决方案2】:

使用 GSON 库将对象存储到字符串中,从而存储到 txt 文件中。它使用简单,只需几行代码即可开始使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多