Windowsforms 中对话框,流、文件操作

对话框:

1、颜色选择控件——ColorDialog

//显示颜色选择器   

colorDialog1.ShowDialog(); 

//把取到的颜色赋值给panel 

panel1.BackColor = colorDialog1.Color;

2、文件夹选择控件——FolderBrowserDialog

//显示文件夹选择器
folderBrowserDialog1.ShowDialog();
//把取到的文件夹用label1显示
label1.Text = folderBrowserDialog1.SelectedPath;

3、字体样式选择控件——FontDialog

//显示出来
fontDialog1.ShowDialog();
//选用字体样式改变label1字体样式
label1.Font = fontDialog1.Font;

4、文件选择控件——openFileDialog

  //设置打开类型的文件
  openFileDialog1.Filter = "文本文件|*.txt|所有文件|*.*";

  //显示
  DialogResult dr = openFileDialog1.ShowDialog();

  //取值
  if (dr == DialogResult.OK)
  {
  label3.Text = openFileDialog1.FileName;
  }

5、保存路径选择控件——saveFileDialog

saveFileDialog1.ShowDialog();
label1.Text = saveFileDialog1.FileName;

 二、流  (I/O)输入输出流

分类:文件流,内存流,网络流

需要引用命名空间——using system .IO;

二进制转换需要的命名空间——using system .Text;

FileStream:文件流——一般用第三个重载方法

三个参数:1、路径2、打开模式3、访问方式

FileStream stream = new FileStream(@"d:文件名.类型"(路径),FileMode.Creat(打开模式),FileAccess.Read(只读)); 

第二个参数:

  • CreateNew ——指定操作系统应创建新文件,如果文件存在则引发异常。
  • Create——指定操作系统创建新文件,如果文件已存在则覆盖之。
  • OPen——指定 操作系统应打开现有文件,如果文件不存在则抛出异常。
  • OpenOrCreate——指定操作系统应打开文件,如果文件不存在则创建之。
  • Truncate——指定操作系统打开现有文件,如果文件已存在则清空,从Truncate打开的文件中读取将引发异常。
  • Append——若文件存在,则找到文件并找到文件结尾,或者创建一个新文件。

第三个参数:

  • Read 对文件的读访问,拥有读取权限。
  • Write 对文件的写访问,拥有写入权限。
  • ReadWrite 对文件的读访问和写访问,拥有读取和写入两个权限。

属性:

  • Length:流的长度
  • Position:流的当前位置,探测光标的当前位置

用法:

1、读文件:

//显示工具
DialogResult dr = openFileDialog1.ShowDialog();
//取值
  if (dr == DialogResult.OK)
  {
  //文件路径
   string path = openFileDialog1.FileName;
  //造文件流
   FileStream fs = new FileStream(path,FileMode.Open);
  //造一个二进制数组,用来存储读到的数据
  byte[] sj = new byte[fs.Length];
  //将文件读取为二进制数据,放到二进制数组里面
  fs.Read(sj,0,sj.Length);
  //将二进制数据转为字符串
  richTextBox1.Text = Encoding.Default.GetString(sj);
  //关闭流
  fs.Close();
  }

2、写文件:

 //显示选择文件对话框
  DialogResult dr = saveFileDialog1.ShowDialog();
//取路径 if (dr == DialogResult.OK) { //文件路径 string path = saveFileDialog1.FileName; //取出文本框中的内容 string nr = richTextBox1.Text; //将字符串转为二进制数组 byte[] sj = Encoding.Default.GetBytes(nr); //造一个文件流 FileStream fs = new FileStream(path,FileMode.Create); //向文件里面写数据 fs.Write(sj,0,sj.Length); //关闭流 fs.Close(); }

3、StreamWrite类:

//取文件路径
 string path = saveFileDialog1.FileName;
//打开文件流 FileStream fs = new FileStream(path,FileMode.Create,FileAccess.Write); //第一种方式,使用流 StreamWriter sw = new StreamWriter(fs,Encoding.Default); //第二种方式,不使用流 StreamWriter sw = new StreamWriter(path,true,Encoding.Default); //将字符串写入文件 sw.Write(richTextBox1.Text); //关闭 sw.Close(); fs.Close();

StreamRead类:

//取文件路径
 string path = saveFileDialog1.FileName;
//打开文件流 FileStream fs = new FileStream(path,FileMode.Create,FileAccess.Write); //第一种方式,使用流 StreamReader sr = new StreamReader(fs,Encoding.Default); //第二种方式,不使用流 //StreamReader sr = new StreamReader(path,Encoding.Default); //读一行 richTextBox1.Text = sr.ReadLine(); //读所有 richTextBox1.Text = sr.ReadToEnd(); //关闭 sr.Close();
原文地址:https://www.cnblogs.com/dreamer666/p/5838044.html