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 + -
显示快捷键?