微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 将类保存到文件?

我正在编写一个音乐播放器和歌词查找程序.截至目前,每次加载程序时都必须读取每个音乐文件并检索ID3标签以查找艺术家姓名,歌曲名称等.当阅读多个文件时,提取ID3标签的过程非常及时-consuming.我希望能够将ID3信息保存到程序的私有数据目录中,而不是每次运行程序时都读取每个ID3标记.

我对序列化和保存/加载这样的东西很困惑.我猜我应该使用FileOutput / InputStreams或ObjectOutput / InputStreams来实现这一点,但我无法掌握它们.有人可以帮助我,并告诉我如何正确保存和加载我的“歌曲”课程?以下是我需要保存的变量.

public class Song implements Serializable
{
    private int index = 0, trackLength = 0;
    private Bitmap albumartwork = null;
    private String toString, name, trackNumber, artist, album, lyrics, fileName, releaseDate;
}

如您所见,我需要跟踪一些字符串,两个整数和一个位图.有人可以告诉我如何将这些数组或ArrayList保存到文件中的设置,例如,名为“music_info.sav”或沿着这些行的东西?另外,如何检查此文件是否存在(如果不存在,则将文件创建为空)?

解决方法:

    ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("song.ser"));
    out.writeObject(yourArrayList);
    out.flush();
    out.close();

来写

    ObjectInputStream in = new ObjectInputStream(new FileInputStream("song.ser"));
    ArrayList<Song> myArrayList = (ArrayList<Song>) in.readobject();
    in.close();

阅读.

编辑

我不确定Bitmap对象.您可能必须滚动自己的readobject()和writeObject()方法.

private void writeObject(java.io.ObjectOutputStream out)
private void readobject(java.io.ObjectInputStream in)

以下是有关序列化和反序列化位图的链接.

http://www.johnwordsworth.com/2011/06/serializing-and-de-serializing-android-graphics-bitmap/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐