abstractrecordstorefile.java

来自「This is a resource based on j2me embedde」· Java 代码 · 共 164 行

JAVA
164
字号
/* * * * Copyright  1990-2007 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER *  * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation. *  * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License version 2 for more details (a copy is * included at /legal/license.txt). *  * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA *  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions. */package com.sun.midp.rms;import java.io.IOException;/** * A RecordStoreFile is a file abstraction layer between a * a RecordStore and an underlying persistent storage mechanism. * The underlying storage methods are provided by the * RandomAccessStream and File classes. * * RecordStoreFile confines the namespace of a record store to * the scope of the MIDlet suite of its creating application. * It also ensures unicode recordstore names are ascii filesystem safe. * * The RecordStoreImpl class can be implemented directly using the * RandomAccessStream and File classes.  However, * RecordStoreFile served as the java/native code boundary for * RMS in the MIDP 1.0 release.  It exists now for * backwards compatibility with older ports. */interface AbstractRecordStoreFile {    /** extension for RecordStore database files */    static final int DB_EXTENSION = 0;    /** extension for RecordStore database files */    static final int IDX_EXTENSION = 1;    /**     * Approximation of remaining space in storage.     *     * Usage Warning:  This may be a slow operation if     * the platform has to look at the size of each file     * stored in the MIDP memory space and include its size     * in the total.     *     * @param suiteId ID of the MIDlet suite that owns the record store     *        can be null     *     * @return the approximate space available to grow the     *         record store in bytes.     */    int spaceAvailable(int suiteId);    /**     * Sets the position within <code>recordStream</code> to     * <code>pos</code>.  This will implicitly grow     * the underlying stream if <code>pos</code> is made greater     * than the current length of the storage stream.     *     * @param pos position within the file to move the current_pos     *        pointer to.     *     * @exception IOException if there is a problem with the seek.     */    void seek(int pos) throws IOException;    /**     * Write all of <code>buf</code> to <code>recordStream</code>.     *     * @param buf buffer to read out of.     *     * @exception IOException if a write error occurs.     */    void write(byte[] buf) throws IOException;    /**     * Write <code>buf</code> to <code>recordStream</code>, starting     * at <code>offset</code> and continuing for <code>numBytes</code>     * bytes.     *     * @param buf buffer to read out of.     * @param offset starting point write offset, from beginning of buffer.     * @param numBytes the number of bytes to write.     *     * @exception IOException if a write error occurs.     */    void write(byte[] buf, int offset, int numBytes) throws IOException;    /**     * Commit pending writes     *     * @exception IOException if an error occurs while flushing     *            <code>recordStream</code>.     */    void commitWrite() throws IOException;    /**     * Read up to <code>buf.length</code> into <code>buf</code>.     *     * @param buf buffer to read in to.     *     * @return the number of bytes read.     *     * @exception IOException if a read error occurs.     */    int read(byte[] buf) throws IOException;    /**     * Read up to <code>buf.length</code> into <code>buf</code>     * starting at offset <code>offset</code> in <code>recordStream     * </code> and continuing for up to <code>numBytes</code> bytes.     *     * @param buf buffer to read in to.     * @param offset starting point read offset, from beginning of buffer.     * @param numBytes the number of bytes to read.     *     * @return the number of bytes read.     *     * @exception IOException if a read error occurs.     */    int read(byte[] buf, int offset, int numBytes) throws IOException;    /**     * Disconnect from <code>recordStream</code> if it is     * non null.  May be called more than once without error.     *     * @exception IOException if an error occurs closing     *            <code>recordStream</code>.     */    void close() throws IOException;    /**     * Sets the length of this <code>RecordStoreFile</code>     * <code>size</code> bytes.  If this file was previously     * larger than <code>size</code> the extra data is lost.     *     * <code>size</code> must be <= the current length of     * <code>recordStream</code>     *     * @param size new size for this file.     *     * @exception IOException if an error occurs, or if     * <code>size</code> is less than zero.     */    void truncate(int size) throws IOException;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?