我的记事本    第一讲:文件的打开与关闭


C#操作文件步骤:
1.       创建文件流对象
2.       创建读写器对象
3.       读写文件
4.       关闭读写器
5.       关闭文件流
l         打开文件
private void tsmiOpen_Click(object sender, EventArgs e) {
    OpenFileDialog dialog = new OpenFileDialog();
    dialog.Filter = "RTF|*.rtf| 文本文件 |*.txt| 所有文件 |*.*" ;
    // 显示打开文件对话框,并判断是否点击了 " 打开 " 按钮
    if (dialog.ShowDialog() == DialogResult.OK) {
       // 读取文件内容
       ReadFile(dialog.FileName);
    }
}
private void ReadFile(string filename) {
    FileStream fs = null;
    try {
       // 创建文件流
       fs = new FileStream(filename, FileMode.Open);
       // 创建读取器
       StreamReader sr = new StreamReader(fs);
       if (filename.LastIndexOf(".") != -1 &&
           //rtf 格式文件,设置空间 RTF 属性
           filename.Substring(filename.LastIndexOf(".") + 1).ToLower() == "rtf") {
           rtfContent.Rtf = sr.ReadToEnd();
       } else {
           rtfContent.Text = sr.ReadToEnd();
       }
       // 关闭读取器
       sr.Close();
    } catch (Exception ex) {
       MessageBox.Show(ex.Message);
    } finally {
       // 关闭文件流
       if (fs != null) fs.Close();
    }
}
l         保存文件
private void tsmiSave_Click(object sender, EventArgs e) {
    SaveFileDialog dialog = new SaveFileDialog();
    dialog.Filter = " 文本文件 |*.txt|RTF|*.rtf| 所有文件 |*.*" ;
    if (dialog.ShowDialog() == DialogResult.OK) {
       WriteFile(dialog.FileName);
    }
}
private void WriteFile(string filename) {
    FileStream fs = null;
    try {
       fs = new FileStream(filename, FileMode.Create);
       StreamWriter sw = new StreamWriter(fs);
       if (filename.LastIndexOf(".") != -1 &&
           filename.Substring(filename.LastIndexOf(".") + 1).ToLower() == "rtf") {
           sw.Write(rtfContent.Rtf);
       } else {
           sw.Write(rtfContent.Text);
       }
       sw.Close();
       MessageBox.Show(" 文件保存成功! " );
    } catch (Exception ex) {
       MessageBox.Show(ex.Message);
    } finally {
       if (fs != null) fs.Close();
    }
}
文件操作时,可能会发生各种异常。比如:文件不存在、文件被占用、无权限等。所以采用对话框形式可以避免文件不存在,除此之外应采用异常处理,避免程序崩溃。
在创建FileStream时,要将声明放在try的外面,不然finally中不能得到fs对象(局部变量),在关闭时也应判断fs!=null,可能在打开时发生异常,文件未打开关闭,会发生异常。

那么我们在处理带格式的文本,比如RTF格式时,是根据文件的后缀去判断,如果是RTF文件,则将内容赋值给RichTextBox的Rtf属性。

我的记事本 第一讲:文件的打开与关闭相关推荐

  1. c语言 fgets函数 去除换行符_C语言文件的打开和关闭

    文件代表一系列的字节.C语言提供了标准库函数用于文件的打开和关闭. 1.文件的打开 打开文件的操作通过标准库函数 fopen 完成,该函数定义如下: FILE *fopen( const char * ...

  2. c语言打开指定文件,C语言文件的打开和关闭

    文件代表一系列的字节.C语言提供了标准库函数用于文件的打开和关闭. 1.文件的打开 打开文件的操作通过标准库函数 fopen 完成,该函数定义如下:FILE *fopen( const char * ...

  3. 文件的打开、关闭、读写

    文章目录 一.简单介绍 1. 文件是什么? 2. 文件的操作流程 3. 如何操作文件 二.对文件的操作 1. 文件的打开与关闭 1.1打开文件 1.2 关闭文件 2. 文件的读写 2.1 文件的顺序读 ...

  4. 【C语言】文件的打开和关闭,文件的顺序读写

    文章目录 1.为什么使用文件 2.什么是文件 3.文件的打开和关闭 文件的打开 文件的关闭 4.文件的顺序读写 4.1文件读写的特点 4.2fputc.fgetc函数 4.3fgets.fputs函数 ...

  5. c语言中关闭文件函数为,C语言文件的打开和关闭

    文件代表一系列的字节.C语言提供了标准库函数用于文件的打开和关闭. 1.文件的打开 打开文件的操作通过标准库函数 fopen 完成,该函数定义如下:FILE *fopen( const char * ...

  6. Matlab学习笔记——文件的打开与关闭

    写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 目录 文件的打开与关闭 1.fopen函数 2.fclose函数 文件的打开与关闭 1.fopen函数 用于打开文件,其 ...

  7. C语言之文件读写探究(一):fopen、fclose(文件的打开和关闭)

    相关博文:C语言之文件读写探究(一):fopen.fclose(文件的打开和关闭) 相关博文:C语言之文件读写探究(二):fputc.fgetc.feof(一次读写一个字符(文本操作)) 相关博文:C ...

  8. Linux关闭io,文件的打开与关闭-IO

    1.文件的目的 就是把一些存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力 2.文件的打开与关闭 如果想用word编写一份简历,应该有哪些流程呢? 1.打开word软件, ...

  9. c语言打开一个html文件路径,C语言文件处理 -C语言文件的打开和关闭

    C语言中,打开文件就是将其从外部存储器调入内存,并定义一个文件指针指向该文件,进而实现用指针对文件的读写操作(见图 1a) ). 图 1:文件的打开与关闭 使用 fopen( ) 函数打开文件的格式如 ...

最新文章

  1. gitlab如何克隆项目到本地进行开发,如何让webstorm项目右键菜单出现Git子菜单,右下角出现Matser分支
  2. 以SIGSEGV为例详解信号处理(与栈回溯)
  3. 关于事务的传播特性和隔离级别的问题
  4. 技术系列课|AI驱动的超分辨技术应用现状
  5. c++ 获取计算机域名_每日一题| 计算机考研20200825
  6. mysql堵塞 sending data和sort状态多,cpu高
  7. 安装Microsoft Hololens开发环境
  8. 深圳店匠笔试题-4.01
  9. Python(18)-字典dictionary、集合
  10. 【Python】常用的数据类型介绍以及它们之间相互转化
  11. 北京大学2016年高等代数与解析几何考研试题
  12. input中checked复选框进行单选
  13. 第2节 storm实时看板案例:10、redis的安装使用回顾
  14. 肯德基champs各个字母代表什么_百度知道
  15. 在vue项目中引入highcharts图表的方法
  16. SpringMVC:视图解析器(ViewResolver)
  17. 北京化工大学计算机考研资料汇总
  18. GIDC全球互联网数据大会:政企应用如何构筑安全合规的互联内容分发加速?
  19. 安卓的WebView的使用
  20. MES系统设备管理概述(下)

热门文章

  1. 为什么你的手机空间不足
  2. 淘宝同行店铺采集软件如何采集店铺的
  3. Flex实现九宫格布局
  4. Reac生命周期(简单易懂)
  5. 平面设计心得分享——入门学习应该注意什么
  6. 只要是倒霉,起卦就能看出来
  7. 让学习成为一种生活方式
  8. Common Lisp 超规范(译文):8.结构体
  9. Python深度学习(8):DeepDream
  10. android edittext 光标 尾,android如何将EditText光标设置为其文本的末尾[复制]