【发布时间】:2013-12-19 22:11:20
【问题描述】:
如果有人能帮助我解决这个问题,我将不胜感激。运行此类 UniqueUsersData.java 时出现错误
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.util.HashSet
at gettingData.UniqueUsersData.main(UniqueUsersData.java:30)
UniqueUsersData.java:
package gettingData;
import java.io.BufferedInputStream;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInput;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.HashSet;
import java.io.Serializable;
import de.umass.lastfm.User;
public class UniqueUsersData {
public static void main(String[] args) throws IOException, ClassNotFoundException{
HashSet<User> userData = null;
String fileName = "users.csv";
ObjectInputStream in = new ObjectInputStream(new FileInputStream(fileName));
try{
while(in != null ){ // keep reading if there are more lines in the file
userData = (HashSet<User>) in.readObject();
}
}catch(IOException e){
e.printStackTrace();
}
String file = "usersInfo.csv";
BufferedWriter out = new BufferedWriter(new FileWriter(file, true));
for(User u: userData){
System.out.println(u.getId() + "," + u.getName() + "\n");
}
out.close();
} // end main method
} // end class
我有另一个类,它使用 last.fm api 获取数据,将用户对象存储到 arraylist,然后将这些对象写入文件 (users.csv)。一切正常,我使用ObjectOutputStream 写入文件。
我已经阅读了有关需要为 Serializable 的类的内容,但我假设 de.umass.lastfm.User 没有实现它。
这里有什么我遗漏的吗?
感谢您的帮助!
【问题讨论】:
标签: java serializable objectinputstream last.fm