C# チュートリアルlogin
C# チュートリアル
著者:php.cn  更新時間:2022-04-11 14:06:23

C# ファイルの入出力



fileは、指定された名前とディレクトリパスを持つディスクに保存されたデータのコレクションです。ファイルが読み取りと書き込みのために開かれると、そのファイルは ストリーム になります。

基本的に、ストリームは通信パス上で渡される一連のバイトです。 入力ストリーム出力ストリームの 2 つの主要なストリームがあります。 入力ストリームはファイルからデータを読み取る(読み取り操作)ために使用され、出力ストリームはファイルにデータを書き込む(書き込み操作)ために使用されます。

C# I/O クラス

System.IO 名前空間には、ファイルの作成と削除、ファイルの読み取りまたは書き込み、ファイルの終了など、さまざまなファイル操作を実行するために使用されるさまざまなクラスがあります。

次の表は、System.IO 名前空間で一般的に使用される非抽象クラスの一部を示しています。

I/O クラス Description
BinaryReader バイナリ ストリームから生データを読み取ります。
BinaryWriter生データをバイナリ形式で書き込みます。
BufferedStreamバイトストリームの一時ストレージ。
Directoryは、ディレクトリ構造の操作に役立ちます。
DirectoryInfoは、ディレクトリに対する操作を実行するために使用されます。
DriveInfoはドライブ情報を提供します。
Fileはファイルの処理に役立ちます。
FileInfo は、ファイルに対する操作を実行するために使用されます。
FileStream は、ファイル内の任意の場所での読み取りと書き込みに使用されます。
MemoryStream は、メモリに保存されているデータのストリームへのランダム アクセスに使用されます。
Path パス情報に対する操作を実行します。
StreamReaderは、バイトストリームから文字を読み取るために使用されます。
StreamWriterは、ストリームに文字を書き込むために使用されます。
StringReaderは、文字列バッファを読み取るために使用されます。
StringWriterは文字列バッファを書き込むために使用されます。

FileStream クラス

System.IO 名前空間の FileStream クラスは、ファイルの読み取り、書き込み、および閉じることを容易にします。このクラスは、抽象クラス Stream から派生します。

新しいファイルを作成するか、既存のファイルを開くには、FileStream オブジェクトを作成する必要があります。 filestreamオブジェクトを作成するための構文は次のとおりです。

rreee

fileSmale.txp.txt

FileStream <object_name> = new FileStream( <file_name>,
<FileMode Enumerator>, <FileAccess Enumerator>, <FileShare Enumerator>);

parametersdescriptionという名前のファイルを読み取るFilestreamオブジェクトを作成してください。 FileMode 列挙は、ファイルを開くためのさまざまなメソッドを定義します。 FileMode 列挙体のメンバーは次のとおりです: FileAccess列挙のメンバーは、、FileShare 列挙のメンバーは次のとおりです:
FileMode

Append: 既存のファイルを開き、ファイルの末尾にカーソルを置きます。ファイルが存在しない場合は、ファイルが作成されます。

  • 作成: 新しいファイルを作成します。ファイルがすでに存在する場合は、古いファイルが削除され、新しいファイルが作成されます。

  • CreateNew: オペレーティング システムが新しいファイルを作成する必要があることを指定します。ファイルがすでに存在する場合は、例外がスローされます。

  • 開く: 既存のファイルを開きます。ファイルが存在しない場合は、例外がスローされます。

  • OpenOrCreate: オペレーティング システムが既存のファイルを開く必要があることを指定します。ファイルが存在しない場合は、指定された名前で新しいファイルが作成され、開かれます。

  • Truncate: 既存のファイルを開きます。ファイルが開かれると、ファイルはゼロバイトサイズに切り詰められます。その後、完全に新しいデータをファイルに書き込むことができますが、ファイルの元の作成日は保持されます。ファイルが存在しない場合は、例外がスローされます。

  • FileAccess
ReadReadWrite

、およびWriteです。 FileShare

Inheritable: ファイル ハンドルを子プロセスに継承できるようにします。 Win32 はこの機能を直接サポートしていません。

  • なし: 現在のファイルを共有しません。 (このプロセスまたは別のプロセスからの) ファイルを開くリクエストは、ファイルが閉じられるまで失敗します。

  • Read: 後からファイルを開いて読み取りできるようにします。このフラグが指定されていない場合、ファイルを閉じるまで (このプロセスまたは別のプロセスから) 読み取りのためにファイルを開くリクエストはすべて失敗します。ただし、このフラグが指定されている場合でも、ファイルにアクセスするには追加のアクセス許可が必要になる場合があります。

  • ReadWrite: ファイルを後で読み取りまたは書き込みのために開くことができるようにします。このフラグが指定されていない場合、(このプロセスまたは別のプロセスから) 読み取りまたは書き込みのためにファイルを開くリクエストは、ファイルが閉じられるまで失敗します。ただし、このフラグが指定されている場合でも、ファイルにアクセスするには追加のアクセス許可が必要になる場合があります。

  • Write: その後、書き込みのためにファイルを開くことができます。このフラグが指定されていない場合、ファイルを閉じるまで (このプロセスまたは別のプロセスから) 書き込みのためにファイルを開くリクエストは失敗します。ただし、このフラグが指定されている場合でも、ファイルにアクセスするには追加のアクセス許可が必要になる場合があります。

  • 削除: その後のファイルの削除を許可します。

次のプログラムは、FileStreamクラスの使用法を示しています:

FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);

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

using System;
using System.IO;

namespace FileIOApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            FileStream F = new FileStream("test.dat", 
            FileMode.OpenOrCreate, FileAccess.ReadWrite);

            for (int i = 1; i <= 20; i++)
            {
                F.WriteByte((byte)i);
            }

            F.Position = 0;

            for (int i = 0; i <= 20; i++)
            {
                Console.Write(F.ReadByte() + " ");
            }
            F.Close();
            Console.ReadKey();
        }
    }
}

C# Advanced File Operations

上記の例は、C# での単純なファイル操作を示しています。ただし、C# System.IO クラスの機能を最大限に活用するには、これらのクラスで一般的に使用されるプロパティとメソッドを知っておく必要があります。

次のセクションでは、これらのクラスとそれらが実行する操作について説明します。各部分の詳細については、リンクをクリックしてください:

トピック 説明
テキスト ファイルの読み取りと書き込み テキスト ファイルの読み取りと書き込みが含まれます。 StreamReader クラスと StreamWriter クラスは、テキスト ファイルの読み取りと書き込みに役立ちます。
バイナリファイルの読み取りと書き込み バイナリファイルの読み取りと書き込みが含まれます。 BinaryReader クラスと BinaryWriter クラスは、バイナリ ファイルの読み取りと書き込みに役立ちます。
Windows ファイル システム操作 C# プログラマーが Windows ファイルとディレクトリを参照して検索できるようにします。

PHP中国語ウェブサイト