我正在编写一个音乐播放器和歌词查找程序.截至目前,每次加载程序时都必须读取每个音乐文件并检索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 举报,一经查实,本站将立刻删除。