Latest web development tutorials

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

ファイルがディスクに設定された指定された名前とディレクトリパスを持つデータストレージです。ファイルを読み書きするために開かれたとき、そのストリームになります

基本的に言えば、ストリームは、通信路を介して送信されるバイトのシーケンスです。入出力ストリーム:二つの主な流れがあります ファイルからデータを読み出すための入力ストリーム (読み出し)、ファイルにデータを書き込むための出力ストリーム (書き込み)。

C#のI / Oタイプ

System.IO名前空間には、ファイルを閉じて、そのようなファイルを作成し、削除するファイルを、読み取りまたは書き込みなどの各種ファイル操作を行うための様々なクラスを持っています。

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

I/O 类描述
BinaryReader从二进制流读取原始数据。
BinaryWriter以二进制格式写入原始数据。
BufferedStream字节流的临时存储。
Directory有助于操作目录结构。
DirectoryInfo用于对目录执行操作。
DriveInfo提供驱动器的信息。
File有助于处理文件。
FileInfo用于对文件执行操作。
FileStream用于文件中任何位置的读写。
MemoryStream用于随机访问存储在内存中的数据流。
Path对路径信息执行操作。
StreamReader用于从字节流中读取字符。
StreamWriter用于向一个流中写入字符。
StringReader用于读取字符串缓冲区。
StringWriter用于写入字符串缓冲区。

FileStreamクラス

System.IO名前空間のFileStreamクラスには、読み取りおよび書き込み、ファイルを閉じするのに役立ちます。 このクラスは、抽象クラスのストリームから導出されます。

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

FileStreamを<OBJECT_NAME> =新しいFileStreamを(<ファイル名>、
<にFileMode列挙>、<FileAccessの列挙子>、<ファイル共有列挙子>)。

例えば、のF にsample.txtという名前のファイルを読むためにFileStreamオブジェクトを作成します。

FileStreamをF =新しいFileStreamを( "sample.txtの"、FileMode.Open、FileAccess.Read、FileShare.Read)。
参数描述
FileMode

FileMode枚举定义了各种打开文件的方法。FileMode 枚举的成员有:

  • Append:打开一个已有的文件,并将光标放置在文件的末尾。如果文件不存在,则创建文件。
  • Create:创建一个新的文件。如果文件已存在,则删除旧文件,然后创建新文件。
  • CreateNew:指定操作系统应创建一个新的文件。如果文件已存在,则抛出异常。
  • Open:打开一个已有的文件。如果文件不存在,则抛出异常。
  • OpenOrCreate:指定操作系统应打开一个已有的文件。如果文件不存在,则用指定的名称创建一个新的文件打开。
  • Truncate:打开一个已有的文件,文件一旦打开,就将被截断为零字节大小。然后我们可以向文件写入全新的数据,但是保留文件的初始创建日期。如果文件不存在,则抛出异常。
FileAccess

FileAccess枚举的成员有:ReadReadWriteWrite

FileShare

FileShare枚举的成员有:

  • Inheritable:允许文件句柄可由子进程继承。Win32 不直接支持此功能。
  • None:谢绝共享当前文件。文件关闭前,打开该文件的任何请求(由此进程或另一进程发出的请求)都将失败。
  • Read:允许随后打开文件读取。如果未指定此标志,则文件关闭前,任何打开该文件以进行读取的请求(由此进程或另一进程发出的请求)都将失败。但是,即使指定了此标志,仍可能需要附加权限才能够访问该文件。
  • ReadWrite:允许随后打开文件读取或写入。如果未指定此标志,则文件关闭前,任何打开该文件以进行读取或写入的请求(由此进程或另一进程发出)都将失败。但是,即使指定了此标志,仍可能需要附加权限才能够访问该文件。
  • Write:允许随后打开文件写入。如果未指定此标志,则文件关闭前,任何打开该文件以进行写入的请求(由此进程或另一进过程发出的请求)都将失败。但是,即使指定了此标志,仍可能需要附加权限才能够访问该文件。
  • Delete:允许随后删除文件。

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

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

名前空間のFileIOApplication
{
    クラスプログラム
    {
        静的な無効メイン(文字列[] args)
        {
            FileStreamをF =新しいFileStreamを( "TEST.DAT"、 
            FileMode.OpenOrCreate、FileAccess.ReadWrite)。

            以下のために(int型私= 1; iが<= 20; I ++)
            {
                F.WriteByte((バイト)は、i);
            }

            F.Position = 0。

            以下のために(int型私= 0; iが<= 20; I ++)
            {
                Console.Write(F.ReadByte()+ "");
            }
            F.Close()。
            Console.ReadKey()。
        }
    }
}

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

1,234,567,891,011,121,314一千五百十六億一千七百十八万千九百二十から一

C#高度なファイル操作

上記の例では、単純なC#のファイル操作を示しています。 しかし、強力なのC#のSystem.IOクラスをフル活用するには、プロパティとメソッドのこれらの共通のクラスを知っている必要があります。

次のセクションでは、これらのクラスとそれらが実行する動作について説明します。 知識のさまざまな部分についての詳細を学ぶためにリンクをクリックしてください:

主题描述
文本文件的读写 它涉及到文本文件的读写。StreamReaderStreamWriter类有助于完成文本文件的读写。
二进制文件的读写 它涉及到二进制文件的读写。BinaryReaderBinaryWriter类有助于完成二进制文件的读写。
Windows 文件系统的操作 它让 C# 程序员能够浏览并定位 Windows 文件和目录。