#if !JAVA /* * RandomAccessFile.cs * Copyright (c) 2009 kbinani * * This file is part of bocoree. * * bocoree is free software; you can redistribute it and/or * modify it under the terms of the BSD License. * * bocoree 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. */ using System; namespace bocoree.java.io { public class RandomAccessFile { private System.IO.FileStream m_stream; public RandomAccessFile( String name, String mode ) { if( mode == "r" ){ m_stream = new System.IO.FileStream( name, System.IO.FileMode.Open, System.IO.FileAccess.Read ); } else if ( mode == "rw" ) { m_stream = new System.IO.FileStream( name, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite ); } else { throw new ArgumentException( "mode: \"" + mode + "\" is not supported", "mode" ); } } public void close() { m_stream.Close(); } public long length() { return m_stream.Length; } public int read() { return m_stream.ReadByte(); } public int read( byte[] b ) { return m_stream.Read( b, 0, b.Length ); } public int read( byte[] b, int off, int len ) { return m_stream.Read( b, off, len ); } public void seek( long pos ) { m_stream.Seek( pos, System.IO.SeekOrigin.Begin ); } public void write( byte[] b ) { m_stream.Write( b, 0, b.Length ); } public void write( byte[] b, int off, int len ) { m_stream.Write( b, off, len ); } public void write( int b ) { m_stream.WriteByte( (byte)b ); } public void writeByte( int b ) { write( b ); } public long getFilePointer() { return m_stream.Position; } } } #endif