c#,文件读写的操作 - Angel's Blog.

ing
 
 
软件开发,程序设计,前端设计
 
 
首页 > code > c#,文件读写的操作

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's Blog.
本文永久链接: http://www.0ee.com/2010/11/19/c-sharp-file-stream-read-and-write-file.html
 
分类: code标签: , ,
 
  • QQ书签
  • Del.icio.us
  • 百度收藏
  • Google
  • 饭否
  • FriendFeed
 

 
评论 (10) Trackbacks (0)
发表评论 Trackback
 
10 Comments Contributed by Visitors
  1.     冰棱 2010年11月22日13:44 1#

    在C#里操作文件,比VB6的简单多了。我以前学Asp的。嘿嘿!

  2.     玎蕾 2010年11月19日07:17 2#

    比较基础,msdn上的

  3.     Angel 2010年11月19日09:22 3#

    @玎蕾
    恩,是的,这些东西都是相对基础的,msdn上的demo也不错。

  4.     Mucid 2010年11月19日04:37 4#

    说到文件,我还是用的c的方式,c++的文件流,书上例子都没有。。改天我自己找点资料额。。 ok

  5.     Angel 2010年11月19日05:27 5#

    @Mucid
    嘿嘿。。 ok

  6.     Code之行人 2010年11月19日23:55 6#

    这个一直是初学者关注的话题..送个AD

  7.     Code之行人 2010年11月19日23:56 7#

    iE下错位了评论框 ok

  8.     Angel 2010年11月20日05:26 8#

    @Code之行人
    额。。。才发现,,移植的这个主题,,ie下显示段落标签内容真恶心。。。= =!

  9.     学夫子 2010年11月20日13:44 9#

    都还有点印象,哈哈

  10.     Angel 2010年11月22日14:06 10#

    @冰棱
    c#很多东西都是拿来就可以用了,很多都是封装好的。

Leave Comments Here...

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

(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 的评论内容.
 
 
  • 正在加载...