私は音楽プレーヤーと歌詞ファインダーであるプログラムを書いています。現在、プログラムがロードされるたびに、各音楽ファイルを読み込み、ID3タグを取得してアーティスト名、曲名などを検索する必要があります。複数のファイルを読み込む場合、ID3タグを抽出するプロセスは非常に時間がかかる-消費する。プログラムが実行されるたびに各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;
}
ご覧のとおり、いくつかの文字列、2つのint、およびビットマップを追跡する必要があります。誰か私に配列またはArrayListをファイルに保存する方法の設定を、「music_info.sav」という名前のファイルに表示することはできますか?また、このファイルが存在するかどうかを確認するにはどうすればよいですか?
sqliteデータベースを作成し、これらのフィールドを列として格納します。これにより、素早くアクセスできるようになり、並べ替え/検索能力も向上します。 – dontocsata