C#の - (ファイル)ファイル操作(IOストリーム)の例

C#のファイル操作:
ヘッダファイル操作.IOシステム

。1、ファイルのFileInfo及び

静的メソッドやクラスを介してファイルを方法のFileInfo例により達成されます。追加追加のテキストのために、streamwriteタイプを作成し

、指定されたフォルダを作成し、2作成または上書きファイル

3は、指定されたファイルを削除するには、[削除

4を、ファイルが存在しないチェック存在する

5、オープンファイルを開くために、特定の読み取りと書き込みの権限を策定

し、OpenReadを6にファイルの既存のオープンAN読み込み

7は、OpenWriteはにファイルを作成したり、既存のファイルを開いて、書き込み

8、すべての行がReadAllTextは、ファイルを読み込み、[閉じるファイル

クローズし、ファイルを9、WriteAllTextは、指定した文字列に書き込まれ、

10 .File.AppendAllText(@ "D:\テスト \ DEBUG1 \ テスト.TXT"、 "ハハ"); APPENDファイル内の文字列

File.Delete(@ "G:\ 456.txt "); // ファイルの削除ブラケットファイルパスに

File.Move( "G:\ 123.txt @ " @、 "G:\ VS2 \ 223.txt"); //( 剪断ファイルの)移動経路、最初の変数が必要ですあなたが第2の位置に移動し、移動し、携帯電話のテキストファイルの名前を宣言

File.Copyを(@ "G:\ VS2 \ 223.txt"、@ "グラムを:\ Webデザイン\ 223.txtを") ; //ファイルに2つのパラメータの自動作成されたファイルパスをコピー


プロパティまたはメソッド 効果
日時GetCreationTime(文字列のパス) 作成日時指定したファイルまたはディレクトリを返します。
日時GetLastAccessTime(文字列のパス)  戻り値指定したファイルまたはディレクトリが最後にアクセスされた日付と時刻をしました
日時GetLastWriteTime(文字列のパス) 指定したファイルまたはディレクトリへの最後の書き込みの日付と時刻を返します。
空SetCreationTime(文字列のパス、日時CREATIONTIME) ファイルの日付と時刻を設定します
空SetLastAccessTime(文字列のパス、日時lastAccessTime) 指定されたファイルへの最終アクセスの日付と時刻を設定
空SetLastWriteTime(文字列のパス、日時lastWriteTime) 設定は、最後に指定されたファイルの日付と時刻に書かれました

ファイルストリームstream使用:

フローは、メモリ内のバイトのシーケンスとして理解することができる、すべてのストリームの流れのための抽象ベースクラスであり、それぞれ特定の記憶エンティティは、派生クラスストリームによって実現することができます。このようなストレージエンティティは、FileStreamをそのまま

三つの基本的な操作

1、ストリーム読取り:特定のデータ構造に読み出されたストリームデータ

2、ストリームライト:それは、ストリームデータ構造にデータを書き込む

3 、探してストリーム:対流内の現在の位置および修飾照会

ストリーミングファイル用いて

オブジェクトがデータを送信するためのストリームであり、データは双方向に転送することができる:

1)の場合であるプログラムへ外部から送信されたデータストリーム読み込み

ストリームに書き込まれたプログラム、外部のソースからのデータ送信した場合2)

外部ソースが独占的に、多くの場合、文書ファイルのではなく、あるが、彼は次のようになります。

1)一部のネットワーク・プロトコルのネットワークを使用して読み書きします他のコンピュータからデータオブジェクトが選択されているデータ、またはデータを送信する

名前付きパイプに読み書きする2)

メモリ領域上のデータを読み書きする3)

実施例のFileStreamを構築するための読み取りおよび書き込みのデータファイルのFileStream例、 :あなたは、以下の情報4枚必要に

アクセスする)ファイルを1

ファイルモード開く方法2)ショーを

ファイルアクセスの3)表現を-読み取り専用、書き込み専用または読み書き

4 )共有アクセス-ファイルへの排他的アクセスかどうかを示します


FileStreamプロパティとメソッドを使用:
  属性:
  CanReadは、現在のストリームサポートが読み込まかどうかを判断し、戻りブール値、真の読みを表し
  CanWriteを、戻りブール値を書き込み、現在のストリームがサポートするかどうかを判断し、真のは、書き込みを表し
  :メソッド
  読み取りを()ストリームからデータを読み取る、バイト配列を返す
  )(書き込みはバイトブロックフロー(バイト配列)を書き込む
  (シーク)の開始位置を読み取るまたはファイルを書き込むために提供される
  (フラッシュ)を、ストリームバッファをクリアすべてのバッファリングされたデータがファイルに書き込まれるよう

  に関連するすべてのシステムリソースを閉じる現在のストリームと解放)を閉じる(
  アクセスメソッドファイル:(FileAccessの)
  三つの列挙を含む:
  FileAccess.Readファイルへ(リードアクセス)
  FileAccess.Write(ファイル書き込み)
  FileAccess.ReadWrite(ファイルの読み取りまたは書き込み動作)
  ファイルオープンモード:(にFileMode)、6列挙含みます
  、ファイルに既存の文書作成追記データを開くをFileMode.APPEND FileAccess.Writeでのみ使用することができます
  FileMode.Createは、オペレーティングシステムは、新しいファイルを作成する必要があり、ファイルがすでに存在する場合、それは上書きされます指示し
  たファイルが既に存在する場合FileMode.CreateNewは例外がスローされ、新しいファイルを作成する必要があり、オペレーティング・システムに指示し
  FileMode.Open指示し、既存のファイルを開く必要があり、オペレーティング・システム、それはFileAccessの値指定されたオープンする能力に依存
  FileMode.OpenOrCreateは、ファイルが存在しない場合は、新しいファイルを作成し、オペレーティングシステムファイルを開く必要があることを示し
  FileMode.Truncateは、既存のファイルを開くと、ファイルの内容を空にする必要があり、オペレーティング・システムに指示
  ファイル共有を:(ファイル共有)
  が同時に同じファイルにアクセスするいくつかのプログラムを避けるために、ファイル共有の方法は、異常な事態を引き起こす可能性があります。
  :4を含むファイル共有、
  FileShare.NONEは、現在のファイル共有を拒否し
  、現在のファイル読み取りにFileShare.Read料他の多くのプログラムを
  FileShare.Write料と別のプログラム、現在のファイルの書き込みをすると約束し
  、現在のファイルを読み書きするFileShare.ReadWrite電荷を他の多くのプログラムを
  使用してファイルストリームオブジェクトを作成するには、FileStreamクラス:
  FileStreamを(文字列のファイルパス、にFileModeファイルオープンモード)
  のFileStream(文字列のファイルパス、にFileModeファイルオープンモード、FileAccessのファイルアクセスモード)
  のFileStream(文字列のファイルパス、にFileModeファイルオープンモード、FileAccessのファイルへのアクセス、ファイル共有ファイル共有)
  例:
  //ファイル操作を使用して、ストリームオブジェクトをFS、CディスクファイルA.TXTを作成し、動作モードは、新たなFS(FileMode.Create)である
  のFileStream( "C:A.TXT" @のFileStream fsの=新しい新しい、にFileMode。 )を作成し;
  //ファイルストリームオブジェクトFS操作を使用して、ディスクファイルA.TXT Cを作成し、FSアクセスモード(FileMode.Create)ファイルの新しいモードであるが書き込まれる(Fileaccess.Write)
  のFileStream FS = FileStreamを新しい新( "C:A.TXT" @、FileMode.Create、FileAccess.Write);
  // CドライブにA.TXTファイルを作成し、FSストリームがファイルを操作するオブジェクトを使用し、fsは新しい仕事モード(FileMode.Create)ファイルですアクセスモードが書き込みモード(FileAccess.Write)ファイル共有が拒否される(FileShare.NONE)共有されている
  のFileStream FS =新しい新しいFileStreamを(:、FileMode.Create、FileAccess.Write、FileShare.NONE "A.TXT C" @) ;
  使用されるファイルストリームオブジェクトを作成するには、ファイルのクラスを使用する:()
  ファイルを開くためのカスタマイズ方法を:File.Open(文字列、にFileMode);
  読み取るためのオープンファイル:File.OpenRead(文字列);
  書き込み用にファイルを開く:ファイルを。 OpenWrite(文字列);
  
  
  複数ファイルのためにどんなに多く、何よりも次のより読み込み、コードを書き込み 三つのステップ:
  1。読み取りおよび書き込みするために、ファイルストリームオブジェクトを作成します。
  読み取りと書き込みファイルの場合2.
  3.閉じるファイルストリーム


例(抜粋から - 家族の財務管理のソースコード):

 /// <summary>
        /// 获取数据
        /// </summary>
        private void GetData()
        {
            List<ShouZhi> ulist = new List<ShouZhi>();
            using (FileStream fs = new FileStream("ShouZhi.txt", FileMode.Open, FileAccess.Read))
            {
                using (StreamReader zs = new StreamReader(fs, Encoding.UTF8))
                {
                    while (!zs.EndOfStream)//判断是否读取到流的末尾
                    {
                        string str = zs.ReadLine();//读取一行
                        ShouZhi s = new ShouZhi();
                        string[] strm = str.Split('#');//以#字符分隔数据
                        s.id = int.Parse(strm[0]);
                        s.name = strm[1];
                        s.type = strm[2];
                        ulist.Add(s);
                    }
                }
            }
            this.dgvSz.DataSource = ulist;
            this.dgvSz.SelectionMode = DataGridViewSelectionMode.FullRowSelect;//整行选择
            this.dgvSz.MultiSelect = false;//不允许多行选
        }
        //------
          //删除
        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            if (this.dgvSz.SelectedRows.Count == 0) { return; }
            int index = this.dgvSz.SelectedRows[0].Index;//获取选择行的索引
            List<ShouZhi> ulist = this.dgvSz.DataSource as List<ShouZhi>;
            ulist.RemoveAt(index);
            //先清空,再重新写入
            FileStream fs = new FileStream("ShouZhi.txt", FileMode.Truncate, FileAccess.Write);//创建文件流
            StreamWriter zs = new StreamWriter(fs, Encoding.UTF8);
            foreach (ShouZhi item in ulist)
            {
                string str = item.id + "#" + item.name + "#" + item.type;//拼接
                zs.WriteLine(str);
            }
            zs.Close();
            fs.Close();
            GetData();
        }
        //----------
            //修改
        private void toolStripButton3_Click(object sender, EventArgs e)
        {
            if (this.dgvSz.SelectedRows.Count == 0) { return; }
            //编辑//获取选中行
            int index = this.dgvSz.SelectedRows[0].Index;
            List<ShouZhi> ulist = (List<ShouZhi>)this.dgvSz.DataSource;
            ShouZhi sz = ulist[index];//获取集合实中实体对象
            frmAdd add = new frmAdd();
            add.ShouZhi = sz;
            DialogResult dr = add.ShowDialog();
            if (dr == DialogResult.OK)
            {
                //对已经更新的实体变更数据(更新数据集合)
                sz.id = add.ShouZhi.id;
                sz.name = add.ShouZhi.name;
                sz.type = add.ShouZhi.type;
                //将更新后的数据集合重新写入文件
                FileStream fs = new FileStream("ShouZhi.txt", FileMode.Truncate, FileAccess.Write);
                StreamWriter zs = new StreamWriter(fs, Encoding.UTF8);
                foreach (ShouZhi item in ulist)
                {
                    string str = item.id + "#" + item.name + "#" + item.type;
                    zs.WriteLine(str);
                }
                zs.Close();
                fs.Close();
                GetData();
            }
        }
公開された26元の記事 ウォンの賞賛5 ビュー6351

おすすめ

転載: blog.csdn.net/MrLsss/article/details/104107775