lipsync/bocoree/RandomAccessFile.cs
2024-05-20 00:17:44 +00:00

79 lines
2.1 KiB
C#

#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