photobook.java
来自「手机在线系统 采用Java 中的J2ME, JSP 跟MySql 运行环」· Java 代码 · 共 267 行
JAVA
267 行
/**
* @(#)PhotoBook.java
* Copyright (c) 2004-2005 wuhua of workroom Inc. All Rights Reserved.
* @version 1.0, 10/05/2004
* @author 饶荣庆
* @author
*/
package com.j2me.myphoto;
import java.io.*;
import java.util.*;
import javax.microedition.rms.*;
/**
*PhotoBook是用来对相册操作的主类
*通过对图片的路径,名,id来操作图片达到相册的效果
*/
public class PhotoBook
{
private RecordStore rs = null;
private RecordEnumeration re = null;
private Photo photo = null;
public PhotoBook()
{
try
{
rs = RecordStore.openRecordStore("PhotoBook", true); //创建一个名为PhotoBook的记录
}
catch(Exception e)
{
}
}
/**
*通过添加图片名,图片路径来添加相片
*/
public void addPhoto(int id, String name, String path)
{
try
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeInt(id);
dos.writeUTF(name);
dos.writeUTF(path);
byte rec[] = baos.toByteArray();
baos.close();
dos.close();
try
{
rs.addRecord(rec, 0, rec.length);
}
catch(Exception e)
{
//System.out.println(e);
}
}
catch(Exception e)
{
//System.out.println(e);
}
}
/**
*通过删除id对应的记录来删除图片路径来达到删除相片图片
*/
public void deletePhoto(int id)
{
int recordID = getRecordIDByID(id);
try
{
rs.deleteRecord(recordID);
}
catch(Exception e)
{
}
}
/**
*通过修改路径来修改图片
*/
public void modifyPhoto(int id, String name, String path)
{
int recordID = getRecordIDByID(id);
try
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeInt(id);
dos.writeUTF(name);
dos.writeUTF(path);
byte rec[] = baos.toByteArray();
baos.close();
dos.close();
try
{
rs.setRecord(recordID, rec, 0, rec.length); //修改id对应的记录
}
catch(Exception e)
{
//System.out.println(e);
}
}
catch(Exception e)
{
//System.out.println(e);
}
}
/**
*得到图片id
*/
public int getRecordIDByID(int id)
{
//-1表示记录存储中尚未有记录
int _id = -1;
RecordFilter rf = new PhotoFilter(id); //搜索对应id
try
{
re = rs.enumerateRecords(rf, null, false); //列举信息
if (re.hasNextElement())
{
_id = re.nextRecordId();
}
}
catch(Exception e)
{
}
return _id;
}
/**
*通过用户id得到图片信息
*/
public Photo getPhoto(int id)
{
Photo photo = null;
byte data[] = new byte[200];
int _id;
String _name;
String _path;
RecordFilter rf = new PhotoFilter(id);
try
{
re = rs.enumerateRecords(rf, null, true);
if (re.hasNextElement())
{
data = re.nextRecord();
}
ByteArrayToRecord batr = new ByteArrayToRecord(data);
_id = batr.getID();
_name = batr.getName();
_path = batr.getPath();
photo = new Photo(_id, _name, _path);
}
catch(Exception e)
{
}
finally
{
if (re!=null)
{
re.destroy();
}
}
return photo;
}
/**
*通过用户name得到相片信息
*/
public Photo getPhoto(String name)
{
Photo photo = null;
byte data[] = new byte[200];
int _id;
String _name;
String _path;
RecordFilter rf = new PhotoFilter(name);
try
{
re = rs.enumerateRecords(rf, null, true);
if (re.hasNextElement())
{
data = re.nextRecord(); //获得这比记录
}
ByteArrayToRecord batr = new ByteArrayToRecord(data); //通过类ByteArrayToRecord获取用户信息
_id = batr.getID();
_name = batr.getName();
_path = batr.getPath();
photo = new Photo(_id, _name, _path);
}
catch(Exception e)
{
}
finally
{
if (re!=null)
{
re.destroy();
}
}
return photo;
}
/**
*获取所有相片
*/
public Vector getAllPhotos(int sortBy)
{
Vector vectorPhotos = new Vector();
Photo photo;
int _id;
String _name;
String _path;
RecordComparator rc = new PhotoComparator(sortBy); //以那种方式获得相片
try
{
re = rs.enumerateRecords(null, rc, true);
while (re.hasNextElement())
{
ByteArrayToRecord batr = new ByteArrayToRecord(re.nextRecord()); //把字节数组转换为可读的类型
_id = batr.getID();
_name = batr.getName();
_path = batr.getPath();
photo = new Photo(_id, _name, _path);
vectorPhotos.addElement(photo);
}
}
catch(Exception e)
{
}
finally
{
if (re!=null)
{
re.destroy();
}
}
return vectorPhotos;
}
/**
*close rs
*/
public void closeRS()
{
try
{
rs.closeRecordStore();
}
catch(Exception e)
{
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?