Java 分裂一根弦的想法?
我正在制作一个存储媒体项目(如DVD或视频游戏)的库,并为媒体项目列表保存一个文件。我必须制定一种方法,从保存文件中读取数据,重新创建媒体项,并将它们放入列表中。我想把它标记化,但我不知道如何开始。有什么建议吗?我正在使用java。每个媒体项都包含字符串标题、字符串格式、布尔值、字符串名称和字符串日期。此方法将用于在启动程序时加载保存文件。您可以使用序列化将数据保存到文件并将其读回。但是你将无法阅读课文Java 分裂一根弦的想法?,java,string,swing,field,tokenize,Java,String,Swing,Field,Tokenize,我正在制作一个存储媒体项目(如DVD或视频游戏)的库,并为媒体项目列表保存一个文件。我必须制定一种方法,从保存文件中读取数据,重新创建媒体项,并将它们放入列表中。我想把它标记化,但我不知道如何开始。有什么建议吗?我正在使用java。每个媒体项都包含字符串标题、字符串格式、布尔值、字符串名称和字符串日期。此方法将用于在启动程序时加载保存文件。您可以使用序列化将数据保存到文件并将其读回。但是你将无法阅读课文 public class MediaSave { public static cla
public class MediaSave {
public static class Media implements Serializable{
/**
*
*/
private static final long serialVersionUID = 7452860232014574705L;
public String title;
public String format;
public Boolean borrowed;
public String name;
public Date date;
protected Media(String title, String format, Boolean borrowed,
String name, Date date) {
super();
this.title = title;
this.format = format;
this.borrowed = borrowed;
this.name = name;
this.date = date;
}
public String toString(){
return title + " " + format + " " + borrowed + " " + name + " " + " " + date ;
}
}
public static void main(String[] args) throws IOException, ClassNotFoundException{
Media[] media = new Media[4];
media[0] = new Media("Avatar1", "dvd",true, "jon1", new Date());
media[1] = new Media("Avatar2", "dvd",true, "jon2", new Date());
media[2] = new Media("Avatar3", "dvd",true, "jon3", new Date());
media[3] = new Media("Avatar4", "dvd",true, "jon4", new Date());
Path p = Paths.get("resources/media.txt");
File f = p.toFile();
if(!f.exists()){
f.createNewFile();
}
try(ObjectOutputStream writer = new ObjectOutputStream(new FileOutputStream(f))){
writer.writeInt(media.length);
for(Media m : media){
writer.writeObject(m);
}
}
try(ObjectInputStream reader = new ObjectInputStream(new FileInputStream(f))){
int cnt = reader.readInt();
for(int i =0 ; i != cnt;i++){
Media m=(Media)reader.readObject();
System.out.println(m.toString());
}
}
}
}
对于读取和写入数据,如果用户需要读取一个简单的文本文件,那么它就足够了。但是如果您是需要读取该文件的人,我建议查看xml,尽管该链接只显示了xml是什么,我建议您进行一些研究,将其实现到java中
MediaItem
,然后使用XMLEncoder
对其进行序列化,如为什么“字符串日期”不是“日期日期”?从Java保存数据有很多选择:数据库、Java序列化、使用JAXB或JAXB编写XML、JSON等价物现在很流行,或者使用新库来读/写好的老式或制表符分隔的文件。很多选项都有很多优点和缺点,所以这里关于StackOverflow的问题太宽泛了。StackOverflow针对的是特定的编程问题和答案,而不是冗长的讨论。重复(关闭为非建设性):