3-5 文件流FileStream综合案例
2009-10-11 00:07
169 查看
3-3-2 案例学习:文件流FileStream综合案例(二)
本案例您将学习到:[align=left]n如何通过用户选择文件夹,获取文件夹信息。[/align]
[align=left]n如何通过用户选择文件,获取文件信息。[/align]
[align=left]n如何通过文件流建立一个新的文本文件。[/align]
[align=left]n如何打开文本文件后重新写文本信息流。[/align]
[align=left]n如何在C#中定义文件和文件夹。[/align]
[align=left]n文件流的资源释放意义以及释放资源的基本顺序。[/align]
[align=left]u实验步骤(1):[/align]
[align=left]由图3-9所示,从工具箱之中拖拽三个GroupBox控件到Form窗体上,text属性分别设置为:“添加物理路径”、“打开文本文件”、“文本编辑区”;向第一个GroupBox控件拖拽一个TextBox控件;再向第一个GroupBox控件拖拽一个Button控件,text属性设置为“选定文件夹”;向第二个GroupBox控件拖拽一个TextBox控件;再向第二个GroupBox控件拖拽一个Button控件,text属性设置为“选定文件”;向第三个GroupBox控件拖拽一个richTextBox控件;再向窗体上非GroupBox区域拖拽一个Button控件,text属性设置为“保存文本文件”。[/align]
[align=center][/align]
[align=center]图3-9 文件操作案例2界面图[/align]
[align=left]u实验步骤(2):[/align]
[align=left]在类Form11里添加一个字段TypeW,int类型,代表人为的操作类型;用鼠标双击所有Button控件,进入.cs文件编辑状态准备进行开发。代码加下:[/align]
[align=left]//==================代码编辑===========================================[/align] [align=left]using System;[/align] [align=left]using System.Collections.Generic;[/align] [align=left]using System.ComponentModel;[/align] [align=left]using System.Data;[/align] [align=left]using System.Drawing;[/align] [align=left]using System.Text;[/align] [align=left]using System.Windows.Forms;[/align] [align=left]using System.IO;[/align] [align=left] [/align] [align=left]namespace FileOptionApplication[/align] [align=left]{[/align] [align=left] public partial class Form11 : Form[/align] [align=left] {[/align] [align=left] public Form11()[/align] [align=left] {[/align] [align=left] InitializeComponent();[/align] [align=left] }[/align] [align=left] //添加变量TypeW,int类型,0为默认,1为打开文件夹并建立new.txt文件,2为打开文本文件[/align] [align=left] int TypeW = 0;[/align] [align=left] /// <summary>[/align] [align=left] /// 选定某个文件夹[/align] [align=left] /// </summary>[/align] [align=left] private void button1_Click(object sender, EventArgs e)[/align] [align=left] {[/align] [align=left] //新建文件夹[/align] [align=left] FolderBrowserDialog openfolder = new FolderBrowserDialog();[/align] [align=left] if (openfolder.ShowDialog ()== DialogResult.OK)[/align] [align=left] {[/align] [align=left] textBox1.Text = Convert.ToString(openfolder.SelectedPath);[/align] [align=left] TypeW = 1;[/align] [align=left] }[/align] [align=left] }[/align] [align=left] /// <summary>[/align] [align=left] /// 选定某个文件夹下面的文本文件[/align] [align=left] /// </summary>[/align] [align=left] private void button4_Click(object sender, EventArgs e)[/align] [align=left] {[/align] [align=left] OpenFileDialog openfile = new OpenFileDialog();[/align] [align=left] openfile.Filter = "文本文件|*.txt";[/align] [align=left] if (openfile.ShowDialog() == DialogResult.OK)[/align] [align=left] {[/align] [align=left] FileStream OpenFileStream = new FileStream(openfile.FileName, FileMode.Open, FileAccess.Read);[/align] [align=left] StreamReader sr = new StreamReader(OpenFileStream, Encoding.Default);[/align] [align=left] richTextBox1.Text = sr.ReadToEnd();[/align] [align=left] textBox2.Text = Convert.ToString(openfile.FileName);[/align] [align=left] OpenFileStream.Close();[/align] [align=left] sr.Close();[/align] [align=left] TypeW = 2;[/align] [align=left] }[/align] [align=left] }[/align] [align=left] /// <summary>[/align] [align=left] /// 保存文本文件[/align] [align=left] /// </summary>[/align] [align=left] private void button2_Click(object sender, EventArgs e)[/align] [align=left] {[/align] [align=left] if (richTextBox1.Text == string.Empty)[/align] [align=left] {[/align] [align=left] MessageBox.Show("编辑文本文件内容禁止为空!", "提示信息");[/align] [align=left] return;[/align] [align=left] }[/align] [align=left] else[/align] [align=left] {[/align] [align=left] if (TypeW == 1)[/align] [align=left] {[/align] [align=left] FileStream fs = new FileStream(textBox1.Text+@"\\new.txt",FileMode.Create,FileAccess.ReadWrite);[/align] [align=left] StreamWriter sw = new StreamWriter(fs,Encoding.Default);[/align] [align=left] sw.Write(richTextBox1.Text);[/align] [align=left] TypeW = 0;[/align] [align=left] MessageBox.Show("已经成功的将文本文件写入" + textBox1.Text + "\\new.txt之中", "提示信息");[/align] [align=left] //注意:此处顺序绝不可调换,为什么?【另外,为什么必须关闭线程资源?】[/align] [align=left] sw.Close();[/align] [align=left] fs.Close();[/align] [align=left] }[/align] [align=left] else if(TypeW==2)[/align] [align=left] {[/align] [align=left] FileStream fs = new FileStream(textBox2.Text, FileMode.OpenOrCreate, FileAccess.ReadWrite);[/align] [align=left] StreamWriter sw = new StreamWriter(fs, Encoding.Default);[/align] [align=left] sw.Write(richTextBox1.Text);[/align] [align=left] TypeW = 0;[/align] [align=left] MessageBox.Show("已经成功的将文本文件写入" + textBox2.Text + "之中", "提示信息");[/align] [align=left] //注意:此处顺序绝不可调换,为什么?[/align] [align=left] sw.Close();[/align] [align=left] fs.Close();[/align] [align=left] }[/align] [align=left] }[/align] [align=left] }[/align] [align=left] }[/align] [align=left]}[/align] |
相关文章推荐
- SQL Server 2005 BI综合案例系列课程
- OSPF与NAT综合应用实验案例
- 综合案例建模--失物招领管理系统的模型
- 第02天多线程网络:(15):多图下载综合案例-数据展示
- Android ListView与SQLite综合使用(水果商品展示案例)
- STL综合案例
- 爬虫——综合案例流程版
- 综合布线案例设计(一)
- 网吧Samba服务器和vsftpd服务器综合应用案例
- 开源项目综合案例
- 系统分析师笔记-案例综合题-系统分析
- java--面向对象之抽象类和接口综合案例
- 【性能诊断】十一、性能问题综合分析(案例2,windbg、wireshark)
- 文件读取的综合案例
- ajax综合案例之用户管理系统
- 队列和栈的综合案例
- 18_Android中Service的生命周期,远程服务,绑定远程服务,aidl服务调用,综合服务案例,编写一个应用程序调用远程支付宝远程服务场景
- BGP综合配置案例
- MyBatis之高级关联和集合映射(二、嵌套结果综合案例)
- 武汉工商行政管理综合业务系统案例