Latest web development tutorials

バイナリファイルの読み取りと書き込みのC#

入力と出力のC#ファイル 入力と出力のC#ファイル

バイナリファイルを読み書きするためのBinaryReaderとBinaryWriterクラス。

BinaryReaderクラス

ファイルからバイナリデータを読み取るためのBinaryReaderクラス。 そのコンストラクタのFileStreamオブジェクトに渡されたBinaryReaderのオブジェクトが作成されます。

次の表は、いくつかの一般的なBinaryReaderクラスのメソッドを示します

序号方法 & 描述
1public override void Close()
关闭 BinaryReader 对象和基础流。
2public virtual int Read()
从基础流中读取字符,并把流的当前位置往前移。
3public virtual bool ReadBoolean()
从当前流中读取一个布尔值,并把流的当前位置往前移一个字节。
4public virtual byte ReadByte()
从当前流中读取下一个字节,并把流的当前位置往前移一个字节。
5public virtual byte[] ReadBytes( int count )
从当前流中读取指定数目的字节到一个字节数组中,并把流的当前位置往前移指定数目的字节。
6public virtual char ReadChar()
从当前流中读取下一个字节,并把流的当前位置按照所使用的编码和从流中读取的指定的字符往前移。
7public virtual char[] ReadChars( int count )
从当前流中读取指定数目的字节,在一个字符数组中返回数组,并把流的当前位置按照所使用的编码和从流中读取的指定的字符往前移。
8public virtual double ReadDouble()
从当前流中读取一个 8 字节浮点值,并把流的当前位置往前移八个字节。
9public virtual int ReadInt32()
从当前流中读取一个 4 字节有符号整数,并把流的当前位置往前移四个字节。
10public virtual string ReadString()
从当前流中读取一个字符串。字符串以长度作为前缀,同时编码为一个七位的整数。

完全なリストについては、Microsoft C#のドキュメントを参照してください。

BinaryWriterクラス

ファイルにバイナリデータを書き込むためのBinaryWriterクラス 。 そのコンストラクタのFileStreamオブジェクトに渡されたBinaryWriterオブジェクトが作成されます。

次の表は、いくつかの一般的なBinaryWriterクラスのメソッドを示します

序号方法 & 描述
1public override void Close()
关闭 BinaryWriter 对象和基础流。
2public virtual void Flush()
清理当前编写器的所有缓冲区,使得所有缓冲数据写入基础设备。
3public virtual long Seek( int offset, SeekOrigin origin )
设置当前流内的位置。
4public virtual void Write( bool value )
把一个单字节的布尔值写入到当前流中,0 表示 false,1 表示 true。
5public virtual void Write( byte value )
把一个无符号字节写入到当前流中,并把流的位置往前移一个字节。
6public virtual void Write( byte[] buffer )
把一个字节数组写入到基础流中。
7public virtual void Write( char ch )
把一个 Unicode 字符写入到当前流中,并把流的当前位置按照所使用的编码和要写入到流中的指定的字符往前移。
8public virtual void Write( char[] chars )
把一个字符数组写入到当前流中,并把流的当前位置按照所使用的编码和要写入到流中的指定的字符往前移。
9public virtual void Write( double value )
把一个 8 字节浮点值写入到当前流中,并把流位置往前移八个字节。
10public virtual void Write( int value )
把一个 4 字节有符号整数写入到当前流中,并把流位置往前移四个字节。
11public virtual void Write( string value )
把一个以长度为前缀的字符串写入到 BinaryWriter 的当前编码的流中,并把流的当前位置按照所使用的编码和要写入到流中的指定的字符往前移。

完全なリストについては、Microsoft C#のドキュメントを参照してください。

次の例では、バイナリデータを読み書き示しています。

システムを用いました。
System.IOを使用しました。

名前空間のBinaryFileApplication
{
    クラスプログラム
    {
        静的な無効メイン(文字列[] args)
        {
            体重BinaryWriter。
            BinaryReaderのBR。
            私は25 = int型。
            ダブルD = 3.14157;
            ブールB =はtrue。
            文字列s = "私は幸せです」。
            //しようとファイルを作成します。
            {
                BW =新しいBinaryWriter(新しいFileStreamを( "MYDATA"、
				FileMode.Create))。
            }
            キャッチ(のIOException e)の
            {
                Console.WriteLineを(e.Message + "\ n個のファイルを作成できません。");
                返します。
            }
            //ファイルを書き込むようにしてください
            {
                bw.Write(ⅰ);
                bw.Write(D)。
                bw.Write(B)
                bw.Write(複数可)。
            }
            キャッチ(のIOException e)の
            {
                Console.WriteLineを(e.Message + "\ nはファイルに書き込めません。");
                返します。
            }

            bw.Close()。
            //ファイルを読み込むようにしてください
            {
                BR =新しいBinaryReader(新しいFileStreamを( "MYDATA"、
				FileMode.Open))。
            }
            キャッチ(のIOException e)の
            {
                Console.WriteLineを(e.Message + "\ nがファイルを開くことができません。");
                返します。
            }
            試します
            {
                I = br.ReadInt32();
                Console.WriteLineを( "整数データ:{0}"、i)は、
                D = br.ReadDouble()。
                Console.WriteLineを( "ダブルデータ:{0}"、d)前記
                B = br.ReadBoolean();
                Console.WriteLineを( "ブールデータ:{0}"、b)は、
                S = br.ReadString()。
                Console.WriteLineを( "文字列データ:{0}"、s)は、
            }
            キャッチ(のIOException e)の
            {
                Console.WriteLineを(e.Message + "\ n個のファイルから読み込むことができません。");
                返します。
            }
            br.Close()。
            Console.ReadKey()。
        }
    }
}

上記のコードはコンパイルされ、実行されると、次の結果を生成します。

整数データ:25
ダブルデータ:3.14157
ブールデータ:真
Stringデータ:私は幸せです

入力と出力のC#ファイル 入力と出力のC#ファイル