ing

Angel's Blog.

软件开发,程序设计,前端设计。

c#,文件读写的操作

1、文件的读与写:

 

在c#中,读写文件的操作流程:

1)创建一个FileStream

2)创建阅读器或者写入器(针对不同情况的不同需求)

3)执行读或者写的操作

4)关闭阅读器或者写入器

5)关闭这个FileStream

其中,使用FileStream的时候,需要引用命名空间:

 

using System.IO;

 

 

2、文件流(FileStream):

 

step ①:创建文件流:

在读写文件的过程中,首先要开启文件流;

在c#中,使用FileStream 类创建文件流。

 

FileStream(String FilePath , FileMode)

 

 

在这里,传入了两个参数,FilePath 是对应文件读写的path,

FileMode 是对要进行读写文件的打开方式。

其中,参数FileMode是枚举(enum)类型,FileMode有如下成员:

 

1)Create:新建一个指定名称的文件(如果该文件存在,则替换旧文件)

2)CreateNew:新建一个文件。

3)Open:打开一个文件,使用它的时候,打开的指定文件必须存在,否则会发生异常。

4)OpenOrCreate:类似于成员Open,如果文件不存在,则新创建一个并打开。

 

step ②:关闭文件流:

使用完毕读写器,记得要关闭读写器,这里用到了FileStream 对象中的.close()方法。

 

3、文件读写器:

 

1)StreamWriter写入器:

首先要创建好文件流,然后再创建阅读器或者写入器(根据需求);

在这里,写入器就用到了StreamWriter类,用来将数据写入文件流中,

打开文件流后就可以new一个StreamWriter的对象。

StreamWriter可以调用的方法如下:

 

 

StreamWriter.Write();//写入流。
StreamWriter.WriteLine();//写入一行数据后自动换行。
StreamWriter.Close();//关闭写入器

2)StreamReader读取器:

 

同理,使用前要创建好文件流,然后创建读取器(StreamReader);

读取器用到了StreamReader类,调用方法如下:

 

StreamReader.ReadLine();//读取文件流中的一行数据,返回字符串。
StreamReader.ReadToEnd();//从当前位置读取到结束,返回字符串。
StreamReader.Close();//关闭读取器。

demo:

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace MyPerson
{
    public partial class FileStreamRW : Form
    {
        public FileStreamRW()
        {
            InitializeComponent();
        }

        private void btnRead_Click(object sender, EventArgs e)
        {
            string path, content;
            path = txtPath.Text;
            content = txtContent.Text;
            if (String.IsNullOrEmpty(path) == true)
            {
                MessageBox.Show("路径不能为空");
                return;
            }
            try
            {
                //创建文件流
                FileStream myFs = new FileStream(path, FileMode.Open);
                //创建读取器
                StreamReader mySr = new StreamReader(myFs);
                //读取文件所有的内容
                content = mySr.ReadToEnd();
                //将读取到的内容赋给txtCotent控件。
                txtContent.Text = content;
                //关闭读取器和文件流。
                mySr.Close();
                myFs.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
            }
        }

        private void btnWrite_Click(object sender, EventArgs e)
        {
            string path, content;
            path = txtPath.Text;
            content = txtContent.Text;
            if (String.IsNullOrEmpty(path) == true)
            {
                MessageBox.Show("文件路径不能为空");
                return;
            }
            try
            {
                //创建文件流
                FileStream myFs = new FileStream(path, FileMode.Create);
                //创建写入器
                StreamWriter mySw = new StreamWriter(myFs);
                //将敲击的内容写入文件中。
                mySw.Write(content);
                MessageBox.Show("写入成功!");
                //关闭写入器和文件流。
                mySw.Close();
                myFs.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
            }
        }
    }
}

 

4、文件和目录操作:

 

1)File类和Directory类:

①:File类的方法:

方法 说明
Exists(string path) 检查指定的文件是否存在,返回bool值。
Copy(string SourceFilePath , string DestinationFilePath) 将指定path的源文件中内容复制到目标文件夹,如果目标文件夹不存在,则在指定路径中新建立一个文件。
Move(string sourceFileName , string destFileName) 将指定的文件移动到一个新的path。
Delete(string path) 删除指定的文件,如果指定的文件不存在,也不会发生异常。

 

②:Directory类的方法:

 

方法 说明
Exists(string path) 检查指定的文件是否存在。
Move(string sourceDirName , string destFileName) 将指定的文件移动到一个新的path。
Delete(string , bool) 删除指定的dir,如果为true,则删除子目录中的所有内容。

 

2)静态类与非静态类:

File类和Directory类在使用方法的时候不需要实例化,直接.方法名() 就可以使用。

静态类和非静态类的区别:

静态类 非静态类
用static 修饰 可以包含静态成员
只包含静态成员 可以包含静态成员
不可以包含实例成员 可以包含实例成员
使用类名调用静态成员 使用实例化对象调用非静态成员
不能被实例化 可以被实例化
不能包含实例构造函数 包含实例构造函数

 

或者通过RSS关注本站的更新 ^ O ^ 。” — by Angel. @ 2010-11-19 - 11:24。 转载请注明:来自 Angel's Blog.
本文永久链接: http://www.q86.net/2010/11/19/c-sharp-file-stream-read-and-write-file.html
Angel.  Tag(s):  c#编程读写,   
  • QQ书签
  • Del.icio.us
  • 百度收藏
  • Google
  • 饭否
  • FriendFeed

Comments Trackbacks
10 Comments Contributed by Visitors
查看更多评论,请点击这里
Leave Comments Here...

:) lol 8) :-o evil :( wink :-| :-x twisted 8-O :-P oops idea :-D cry :-? ?

(required)

(required)

随您("http://"可以省略)

(Ctrl+Enter)

我显示验证码...

  • 本站不会泄露您的 Email 地址, 敬请放心.
  • 本站已开启缓存, 请不要重复提交评论.
  • 请注意: 带有 《广告(链)、不健康、或者 产品名字》 的评论一律视为spam.
  • 支持常用 HTML 标签调用, 插入 HTML 标签需注意: < == &lt;> == &gt;.
  • 仅当某人针对您的评论做出回应时, 您才会收到由本站发出的邮件通知.
  • 如您希望以相同方式通知某位网友, 请点击  按钮进行回复.
  • 允许在评论中使用如下代码: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> .
  • 鼠标悬浮到评论中的 @someone 区域即可自动显示 someone 的评论内容.