Csharp-file-io

提供:Dev Guides
移動先:案内検索

C#-ファイルI/O

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

ストリームは、基本的に通信パスを通過する一連のバイトです。 2つのメインストリームがあります:入力ストリーム*および*出力ストリーム。 *入力ストリーム*は、ファイルからのデータの読み取り(読み取り操作)に使用され、*出力ストリーム*はファイルへの書き込み(書き込み操作)に使用されます。

C#I/Oクラス

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

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

Sr.No. I/O Class & Description
1

BinaryReader

バイナリストリームからプリミティブデータを読み取ります。

2

BinaryWriter

プリミティブ形式のデータをバイナリ形式で書き込みます。

3

BufferedStream

バイトストリームの一時ストレージ。

4

Directory

ディレクトリ構造の操作を支援します。

5

DirectoryInfo

ディレクトリで操作を実行するために使用されます。

6

DriveInfo

ドライブに関する情報を提供します。

7

File

ファイルの操作に役立ちます。

8

FileInfo

ファイルの操作を実行するために使用されます。

9

FileStream

ファイル内の任意の場所から読み書きするために使用されます。

10

MemoryStream

メモリに保存されたストリーミングデータへのランダムアクセスに使用されます。

11

Path

パス情報に対して操作を実行します。

12

StreamReader

バイトストリームから文字を読み取るために使用されます。

13

StreamWriter

文字をストリームに書き込むために使用されます。

14

StringReader

文字列バッファーからの読み取りに使用されます。

15

StringWriter

文字列バッファへの書き込みに使用されます。

FileStreamクラス

System.IO名前空間の FileStream クラスは、ファイルの読み取り、書き込み、およびファイルのクローズに役立ちます。 このクラスは、抽象クラスStreamから派生しています。

*FileStream* オブジェクトを作成して、新しいファイルを作成するか、既存のファイルを開く必要があります。 *FileStream* オブジェクトを作成するための構文は次のとおりです-
FileStream <object_name> = new FileStream( <file_name>, <FileMode Enumerator>,
   <FileAccess Enumerator>, <FileShare Enumerator>);

たとえば、次のように* sample.txtという名前のファイルを読み取るためにFileStreamオブジェクト F を作成します-

FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read,
   FileShare.Read);
Sr.No. Parameter & Description
1

FileMode

  • FileMode* 列挙子は、ファイルを開くためのさまざまなメソッドを定義します。 FileMode列挙子のメンバーは-
  • 追加-既存のファイルを開き、ファイルの最後にカーソルを置くか、ファイルが存在しない場合はファイルを作成します。
  • 作成-新しいファイルを作成します。
  • CreateNew -オペレーティングシステムに新しいファイルを作成するように指定します。
  • 開く-既存のファイルを開きます。
  • OpenOrCreate -ファイルが存在する場合はそれを開く必要があることをオペレーティングシステムに指定し、そうでない場合は新しいファイルを作成する必要があります。
  • 切り捨て-既存のファイルを開き、そのサイズをゼロバイトに切り捨てます。
2

FileAccess

  • FileAccess* 列挙子には、 *Read* 、 *ReadWrite* 、および *Write* のメンバーがあります。
3

FileShare

  • FileShare* 列挙子には、次のメンバーがあります-
  • Inheritable -ファイルハンドルが子プロセスに継承を渡すことができる
  • なし-現在のファイルの共有を拒否します
  • 読み取り-読み取り用にファイルを開くことができます。
  • ReadWrite -読み取りおよび書き込み用にファイルを開くことができます
  • 書き込み-書き込み用にファイルを開くことができます

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

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();
      }
   }
}

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -1

C#の高度なファイル操作

前の例では、C#での単純なファイル操作を提供しています。 ただし、C#System.IOクラスの非常に強力な機能を利用するには、これらのクラスの一般的に使用されるプロパティとメソッドを知る必要があります。

Sr.No. Topic & Description
1

Reading from and Writing into Text files

テキストファイルの読み取りと書き込みが含まれます。 StreamReader および StreamWriter クラスはそれを達成するのに役立ちます。

2

Reading from and Writing into Binary files

これには、バイナリファイルの読み取りと書き込みが含まれます。 BinaryReader および BinaryWriter クラスは、これを達成するのに役立ちます。

3

Manipulating the Windows file system

これにより、C#プログラマーはWindowsファイルとディレクトリを参照および検索できます。