예제 #1
0
        /// <summary>
        /// Loads the input file stream into memory.
        /// </summary>
        /// <param name="inputStream"></param>
        /// <returns></returns>
        public bool Deserialize(RandomAccessFile inputStream)
        {
            try
            {
                var elementCount = inputStream.readInt();

                for (int elementIndex = 0; elementIndex < elementCount; ++elementIndex)
                {
                    var elementTypeOrdinal = inputStream.readInt();
                    var elementType        = (VariableLengthRecord.RecordElementType)elementTypeOrdinal;
                    var size = inputStream.readInt();

                    String value = String.Empty;

                    if (size == inputStream.read(ref value, size))
                    {
                        RecordElement recordElement = new
                                                      RecordElement(elementType, value);

                        mElements.Add(recordElement);
                    }
                }
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
예제 #2
0
        public VariableLengthRecordFile(String folder, String filename)
        {
            mPathname  = folder;
            mPathname += ("/");
            mPathname += (filename);
            mPathname += (".dat");

            mFileStream = new RandomAccessFile(mPathname);
            if (mFileStream.length() > 0)
            {
                mFileStream.seek(0);
                mBytesUsed = mFileStream.readInt();
            }
            else
            {
                mBytesUsed = 0;
                mFileStream.writeInt(mBytesUsed);
            }
        }