5个对话框和FileStream:文件流
1、private void button1_Click(object sender, EventArgs e)
{
colorDialog1.ShowDialog();//显示颜色选择器
panel1.BackColor = colorDialog1.Color;//把取到的颜色赋值给panel
}
2、private void button2_Click(object sender, EventArgs e)
{
folderBrowserDialog1.ShowDialog();//显示文件夹选择器
label1.Text= folderBrowserDialog1.SelectedPath;//取文件的路径
}
3、private void button3_Click(object sender, EventArgs e)
{
//显示
fontDialog1.ShowDialog();字体样式选择控件
label2.Font = fontDialog1.Font;//取值
}
4、private void button4_Click(object sender, EventArgs e)
{
//设置能够打开什么类型的文件
openFileDialog1.Filter = "文本文件|*.txt|所有文件|*.*";//这是两种
//显示
DialogResult dr = openFileDialog1.ShowDialog();
//取值
if (dr == DialogResult.OK)//加一个判断看是否选择
{
label3.Text = openFileDialog1.FileName;
}
}
5、saveFileDialog:保存路径选择控件 只能选择文件
private void button5_Click(object sender, EventArgs e)
{
DialogResult dr =saveFileDialog1.ShowDialog();
if (dr == DialogResult.OK)//加一个判断看是否选择
{
label4.Text = saveFileDialog1.FileName;
}
}
流:(I/O)输入输出流 二进制的数据
分类:文件流、内存流、网络流
流的操作一般放在try catch 里面,操作文件网络容易出错
命名空间:
using System.IO;
using System.Text;//二进制转换需要的命名空间
一、类:FileStream:文件流
1、构造:一般用第三个重载
FileStream stream = new FileStream("d:\\test.txt"(路径),FileMode.Creat(打开模式),FileAccess.Read(只读));
//造了一个文件流
// FileStream fs = new FileStream("E:\\aa.txt",FileMode.Open);//第三个第六个
第二个参数(打开模式)
CreateNew 指定操作系统应创建新文件,如果文件存在则引发异常。
Create 指定操作系统创建新文件,如果文件已存在则覆盖之。
OPen 指定 操作系统应打开现有文件,如果文件不存在则抛出异常。
OpenOrCreate 指定操作系统应打开文件,如果文件不存在则创建之。
Truncate 指定操作系统打开现有文件,如果文件已存在则清空,从Truncate打开的文件中读取将引发异常。截取
Append 若文件存在,则找到文件并找到文件结尾,或者创建一个新文件。追加
FileStream fs = new FileStream("E:\\aa.txt", FileMode.Open,FileAccess.Read);
第三个参数(只读)
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、用法(两种:读文件、写文件)
读文件:
private void button1_Click(object sender, EventArgs e)
{
//拖动一个控件openFileDialog到窗体
//显示工具
DialogResult dr = openFileDialog1.ShowDialog();
//取值
if (dr == DialogResult.OK)
{
//文件路径
string path = openFileDialog1.FileName;
//造文件流
FileStream fs = new FileStream(path,FileMode.Open);
//1、造一个二进制数组,用来存储读到的数据
byte[]sj=new byte[fs.Length];//流的长度
//2、将文件读取为二进制数据,放到二进制数组里面
fs.Read(sj,0,sj.Length);
//3、将二进制数据转为字符串
richTextBox1.Text= Encoding.Default.GetString(sj);
//流不能 读取 word 、表格等第三方做的
//关闭流
fs.Close();
}
}
写文件:
private void button2_Click(object sender, EventArgs e)
{
//拖动一个控件saveFileDialog到窗体
//显示选择文件对话框
DialogResult dr = saveFileDialog1.ShowDialog();
//去路径
if (dr == DialogResult.OK)
{
//文件路径
string path = saveFileDialog1.FileName;
//取出文本框中的内容
string nr= richTextBox1.Text;
//1、将字符串转为二进制数组
byte[] sj= Encoding.Default.GetBytes(nr);
//造一个文件流
FileStream fs = new FileStream(path,FileMode.Create);
//2、向文件里写数据
fs.Write(sj,0,sj.Length);
//关闭流
fs.Close();
}
}
二、 StreamWrite类:写入
private void button3_Click(object sender, EventArgs e)
{
//显示选择文件对话框
DialogResult dr = saveFileDialog1.ShowDialog();
//去路径
if (dr == DialogResult.OK)
{
//文件路径
string path = saveFileDialog1.FileName;
//取出文本框中的内容
string nr = richTextBox1.Text;
//1、将字符串转为二进制数组
// byte[] sj = Encoding.Default.GetBytes(nr);
//造一个文件流
FileStream fs = new FileStream(path, FileMode.Create);
//造一个streamwrite对象
StreamWriter sw = new StreamWriter(fs, Encoding.Default);
//写入文件
sw.Write(nr);//自动转码
//关闭
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();
5个对话框和FileStream:文件流的更多相关文章
- C# Path类 FileStream(文件流) 与 File(文件) 读取的区别
1.采用文件流读取数据是一点一点从文件中读取数据对内存的压力相对较小;而采用文件读取数据是一下全部读取过来对内存造成的压力相对较大 2.File读取: string str = @"E:\Q ...
- FileStream文件流的读取和写入(为以后聊天工具的设计基础)
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Tex ...
- 02-大文件Copy(FileStream文件流类)
static void Main(string[] args) { string source = @"e:\1.exe";//要移动文件的路径 大文件 string target ...
- FileStream文件流
操作字节 文件流和文件的区别 文件不管大小,一次读写 文件流可以分块读写 //文件流的资源GC不会释放,所以需要使用using using (FileStream fsRead = new FileS ...
- FileStream类的使用(文件流)
1.什么是FileStream类 FileStream 类对文件系统上的文件进行读取.写入.打开和关闭操作,并对其他与文件相关的操作系统句柄进行操作,如管道.标准输入和标准输出.读写操作可以指定为同步 ...
- c#Filestream类(文件流)
0.创建文件流几种方法: File.Open("a.txt",FileMode.Create,FileAccess.ReadWrite); File.OpenWrite(" ...
- 文件流FileStream的读写
1.FileStream文件流的概念: FileStream 类对文件系统上的文件进行读取.写入.打开和关闭操作,并对其他与文件相关的操作系统句柄进行操作,如管道.标准输入和标准输出.读写操作可以指定 ...
- c#基础语言编程-文件流操作
引言 在System.IO 命名空间下提供了一系列的类,我们可以通过相应的类进行文件.目录.数据流的操作. 1.File类:提供用于创建.复制.删除.移动和打开文件的静态方法.File类 2.File ...
- .net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、压缩流GZipStream、拷贝大文件、序列化和反序列化
1.集合(1)ArrayList内部存储数据的是一个object数组,创建这个类的对象的时候,这个对象里的数组的长度为0(2)调用Add方法加元素的时候,如果第一次增加元神,就会将数组的长度变为4往里 ...
随机推荐
- Jquery隐藏和显示Div的控制
html页面代码: <input type="checkbox" name="searchType" value="searchNews&quo ...
- 【转】上拉下拉电阻、I/O输出(开漏、推挽等)
作者:BakerZhang 链接:https://www.jianshu.com/p/3ac3a29b0f58来源:简书 感谢! ——————————————————————————————————— ...
- LINUX - getopts
getopts optionString opt; optionString :所有参数组成的-参数串: opt:从optionString 每次取的参数值: 当optionString用[:]开头, ...
- lua_自己对“lua函数”知识点的总结
lua_自己对“lua函数”知识点的总结 1.lua函数的定义 --lua中,函数都是function类型的对象.(1)其可以被比较 (2)其可以赋值给一个对象(3)可以传递给函数(4)可以从函数中返 ...
- [luogu1155 NOIP2008] 双栈排序 (二分图染色)
传送门 Description Input 第一行是一个整数 n . 第二行有 n 个用空格隔开的正整数,构成一个 1−n 的排列. Output 共一行,如果输入的排列不是"可双栈排序排列 ...
- Linux浅谈磁盘管理及案例
磁盘管理 MBR原理图 从该图可理解到为什么主分区只能是四个. 可以不分区,但为了统一管理,提高访问效率 设备不同,生成设备名称不同 管理分区命令: lsblk查看块设备 fdisk创建MBR分区 f ...
- spring-boot 访问时,加与不加项目名分析
众所周知,springboot非常便捷,可以简化项目开启步骤,加快开发进度. 很多新手也许都遇到过这样一个问题,在以往的springMvc项目里,大家伙都是把打的war放在tomcat中运行,下意识的 ...
- 一维数组快速转集合(List)
String[] arr={"qwe","asd","zxc","asddf","hghgf"}; ...
- asp.net常用容器
autofac就是ioc的第三方的IOC容器 unity也是IOC容器 掌握这两个容器就可以了,非常简单
- redis-事务-transaction
redis的目标的是: 简洁,高效,由于事务本身就是一个很复杂的东西,所有我们不能把事务做的太复杂... multi,exec 127.0.0.1:6379> multi OK 127.0.0. ...