Java 分裂一根弦的想法?

Java 分裂一根弦的想法?,java,string,swing,field,tokenize,Java,String,Swing,Field,Tokenize,我正在制作一个存储媒体项目(如DVD或视频游戏)的库,并为媒体项目列表保存一个文件。我必须制定一种方法,从保存文件中读取数据,重新创建媒体项,并将它们放入列表中。我想把它标记化,但我不知道如何开始。有什么建议吗?我正在使用java。每个媒体项都包含字符串标题、字符串格式、布尔值、字符串名称和字符串日期。此方法将用于在启动程序时加载保存文件。您可以使用序列化将数据保存到文件并将其读回。但是你将无法阅读课文 public class MediaSave { public static cla

我正在制作一个存储媒体项目(如DVD或视频游戏)的库,并为媒体项目列表保存一个文件。我必须制定一种方法,从保存文件中读取数据,重新创建媒体项,并将它们放入列表中。我想把它标记化,但我不知道如何开始。有什么建议吗?我正在使用java。每个媒体项都包含字符串标题、字符串格式、布尔值、字符串名称和字符串日期。此方法将用于在启动程序时加载保存文件。

您可以使用序列化将数据保存到文件并将其读回。但是你将无法阅读课文

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针对的是特定的编程问题和答案,而不是冗长的讨论。重复(关闭为非建设性):