gpt4 book ai didi

java - 无法从文件中读取对象并将它们放入java中的链表中

转载 作者:行者123 更新时间:2023-12-01 12:04:14 26 4
gpt4 key购买 nike

我想从文件中读取对象并将数据放入LinkedList并返回对其的引用。但是当我尝试这个方法时,它返回没有数据的 LinkedList。

private static LinkedList<Course> readFromFile(String fileName)
throws FileNotFoundException, IOException {
LinkedList<Course> tmp = new LinkedList<Course>();

reader = new ObjectInputStream(new FileInputStream(fileName));

try {
LinkedList<Course> readObject2 = (LinkedList<Course>) reader
.readObject();
LinkedList<Course> readObject = readObject2;
tmp = readObject;
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

return tmp;
}

我的写作方法是这样的

private static boolean writeToFile(String fileName, LinkedList<Course> templist)
throws IOException {
LinkedList<Course> templist1 = new LinkedList<Course>();

if (createFile(fileName)) {
FileOutputStream outF = new FileOutputStream(fileName);

outO = new ObjectOutputStream(outF);
outO.writeObject(templist1);

//outO.flush();
return true;
}
else
return false;
}
<小时/>

写法是这样的

private static boolean writeToFile(String fileName, LinkedList<Course> templist) throws IOException {
LinkedList<Course> templist1 = new LinkedList<Course>();

if (createFile(fileName)) {
FileOutputStream outF = new FileOutputStream(fileName);

outO = new ObjectOutputStream(outF);
outO.writeObject(templist1);

//outO.flush();
return true;
}
else
return false;
}

最佳答案

类(class)类正在实现 java.io.Serializable
当您使用 ObjectInputStream 从文件中读取对象时,其顺序应与之前使用 ObjectOutputStream 存储的顺序相同。并且具有相同的对象类型。

如果您尝试阅读:

 (LinkedList<Course>) reader.readObject();

您必须将其存储为:

ObjectOutputStream writer = new ObjectOutputStream(
new FileOutputStream(fileName));

writer.writeObject(yourLinkedListToSave);

正如您的代码所示:

private static boolean writeToFile(String fileName, LinkedList<Course> templist) throws IOException {
// Dont forget to initialize with your list else the list still empty
LinkedList<Course> templist1 = new LinkedList<Course>(templist);

if (createFile(fileName)) {
FileOutputStream outF = new FileOutputStream(fileName);

outO = new ObjectOutputStream(outF);
outO.writeObject(templist1);

//outO.flush();
return true;
}
else
return false;
}

关于java - 无法从文件中读取对象并将它们放入java中的链表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27756625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com