用java保存linkedlist中的数据



所以我正在制作一个有链接列表的程序,我需要它在程序退出时存储列表中的信息,并在启动时加载

有没有办法这样做?可能不是文件

提前感谢!

我建议将内容写入文本文件,但正如Elliott Frisch所提到的,还有其他几种方法。对我来说,最简单的方法似乎是使用序列化写入文本文件。

注意:这需要将列表定义为类型LinkedList,而不是list,因为LinkedList是可序列化的,而list不是

我的意思是:

OK:LinkedList<String> list = new LinkedList<String>();

不正常:List<String> list = new LinkedList<String>();

写入文件:

FileOutputStream fout = new FileOutputStream(“tmp.txt”);
ObjectOutputStream out = new ObjectOutputStream(fout);
out.writeObject(myList);

从文件中读取:

FileInputStream fin = new FileInputStream(“tmp.txt”);
ObjectInputStream in = new ObjectInputStream(fin);
LinkedList<WhateverData> myList = (LinkedList<WhateverData>) in.readObject();

我认为WhateverData也应该是可序列化的。

有很多方法可以做到这一点,但对于初学者来说,保存到文本文件中可能是最好的方法。循环浏览您的链接列表,并使用PrintWriter(或Java中的任何其他类)将所有内容存储在指定的.txt文件中:

PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8");
CustomList list = new CustomList();//not sure what your list is called
//iterate over list {
    writer.println(list.get(currentPosition));
}
writer.close();//saves file

来源:我如何创建一个文件并用Java编写?

使用BufferedReader:读取文件时也可以执行同样的操作

BufferedReader reader = new BufferedReader(new FileReader("/path/to/file.txt"));
CustomList list = new CustomList();//not sure what your list is called
String line = null;
while ((line = reader.readLine()) != null) {
    list.add(new CustomeNode(line));
}

来源:Java:如何读取文本文件

注意:这是伪代码。

不要把它当作一个答案,而是当作一个注释。

你试过在序列化的背景下思考吗。例如:如果你有一个用于链表的数字列表,你可以序列化整数数组。

稍后,当程序启动时,您可以反序列化并使用重新格式化的数字数组来填充您的链表。

希望这能有所帮助。

通常有三个主要步骤来实现您的目标-

  1. 检查持久存储是否有链接列表(如果有,则检索它,否则创建链接列表)
  2. 对链接列表执行处理(添加、删除、编辑等)
  3. 将链接列表存储到持久存储

您的持久存储几乎可以是任何形式的存储。它可能是远程数据库服务器(或文件系统),可能是内存系统,可能由"众所周知"的本地filePath支持。以下是关于持久性策略的更多阅读。

您必须使用文件,没有其他方法。为您的数据设置格式,写入文件,然后再次读取。文件就是这样,它们是独立于程序的永久数据存储机制。

相关内容

  • 没有找到相关文章

最新更新