C#窗体 流
流:(I/O)输入输出流
分类:文件流,内存流,网络流
流的操作一般要放在try catch里面,操作文件网络容易出现异常
命名空间:using system .IO;
using system .Text; //二进制转换需要的命名空间
一:类:FileStream:文件流
1.构造:一般用第三个重载
FileStream stream = new FileStream("d:\\test.txt"(路径),FileMode.Creat(打开模式),FileAccess.Read(只读));
第二个参数
CreateNew 指定操作系统应创建新文件,如果文件存在则引发异常。
Create 指定操作系统创建新文件,如果文件已存在则覆盖之。
OPen 指定 操作系统应打开现有文件,如果文件不存在则抛出异常。
OpenOrCreate 指定操作系统应打开文件,如果文件不存在则创建之。
Truncate 指定操作系统打开现有文件,如果文件已存在则清空,从Truncate打开的文件中读取将引发异常。
Append 若文件存在,则找到文件并找到文件结尾,或者创建一个新文件。
第三个参数
Read 对文件的读访问,拥有读取权限。
Write 对文件的写访问,拥有写入权限。
ReadWrite 对文件的读访问和写访问,拥有读取和写入两个权限。
写路径的时候前面加@,或者写双斜杠 @"d:\test.txt"
2.属性:
Length:流的长度
Position:流的当前位置,探测光标的当前位置
3.方法
Write(byte[]流的内容,int从第几个位置写,int写入长度);
参数,第一个二进制数组,第二个从哪个位置开始写一般从0开始,第三个写进去多长(一般用Length,需要强转为int)。
Read(byte[]存放读出流的空间,int从第几个位置读,int读多长);读文件
seek(int偏移量,SeekOrigin.Begin(从哪计算偏移量))调整流的当前位置,seek(0,seekOrigin.End),将光标移到末尾
Flush();清除缓存
Close();关闭流
4.用法:
一:读文件:
取出文件路径
string path = openFileDialog1.FileName;
打开文件流
FileMode是打开模式 Open是打开文件 Append是追加 Create是创建 CreateNew创建新的
OpenOrCreate有打开,没有创建 Truncate打开文件清空
FileAccess 读或写
FileStream fs = new FileStream(path,FileMode.OpenOrCreate,FileAccess.Read);
造二进制数组,长度是流的长度
byte[] bf = new byte[fs.Length];
将文件中的数据读到二进制数组里面
fs.Read(bf, 0, bf.Length);
将而进制转码为字符串显示
richTextBox1.Text = Encoding.Default.GetString(bf);
关闭流
fs.Close();
二:写文件:
取文件路径
string path = saveFileDialog1.FileName;
打开文件流
FileStream fs = new FileStream(path,FileMode.Create,FileAccess.Write);
将字符串转换为二进制数组
byte[] nr = Encoding.Default.GetBytes(richTextBox1.Text);
将而进制数组写入文件
fs.Write(nr,0,nr.Length);
关闭流
fs.Close();
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();
对话框:
ColorDialog:颜色选择控件
colorDialog1.ShowDialog();
button1.BackColor = colorDialog1.Color;
FolderBrowserDialog:文件夹选择控件
folderBrowserDialog1.ShowDialog();
label1.Text = folderBrowserDialog1.SelectedPath;
FontDialog:字体样式选择控件
fontDialog1.ShowDialog();
label1.Font = fontDialog1.Font;
openFileDialog:文件选择控件
DialogResult dr = openFileDialog1.ShowDialog();
if(dr == DialogResult.OK)
{
label1.Text = openFileDialog1.FileName;
}
限制打开的文件后缀:Filter = 文本文件|*.txt|所有文件|*.*;
一个显示一个后缀是一组,添加另一组需要继续使用'|'
saveFileDialog:保存路径选择控件
saveFileDialog1.ShowDialog();
label1.Text = saveFileDialog1.FileName;
最新文章
- jQuery--事件总结
- fcitx jdk maven profile配置
- Linux中的输入重定向,变量
- Winform开发框架中实现同时兼容多种数据库类型处理
- 【BZOJ-3712】Fiolki LCA + 倍增 (idea题)
- Linux: Set OR Change The Library Path
- java提高篇---Iterator
- jQuery使用伪递归重复执行动画
- c++未指定返回值
- 如何实现CSS居中?–CSS居中常用方法
- android.mk android源码编译
- 12c windows auto installl
- js--javascript中字符串常用操作总结、JS字符串操作大全
- jeecg 3.7.1 新版功能,集群定时任务动态发布模块 使用规则
- Android使用XUtils框架上传照片(一张或多张)和文本,server接收照片和文字(无乱码)
- HTML5的Rang对象
- 【开源】微信小程序、小游戏以及 Web 通用 Canvas 渲染引擎 - Cax
- java接口入参模板化,适用于企业化服务远程调度模板化的场景,接口入参实现高度可配置化
- HDU 4347 - The Closest M Points - [KDTree模板题]
- 转换区别json