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往里 ...
随机推荐
- html 底部虚线
<div style="width: 100%; font-size: 14px; color: #666; border-bottom: 1px dashed #666;" ...
- CorelDRAW2019版本下载,CorelDRAW最新版新增功能(全)
使用CorelDRAW 2019,随时随地进行设计创作.无论您使用的是 Windows 或 Mac,都能在为您的平台量身设计的直观界面中,随心所欲地自由创作.无论您是热衷于像素,执迷于无缝输出或沉浸于 ...
- iframe的2个问题
1.iframe里的视频无全屏按钮<iframe src="" allowfullscreen></iframe>allowfullscreen有个浏览器前 ...
- react 基础篇 #2 create-react-app
1. 介绍 在开发react应用时,应该没有人用传统的方法引入react的源文件(js),然后在html编辑吧. 大家都是用webpack + es6来结合react开发前端应用. 这个时候,我们可以 ...
- SP1825 FTOUR2 - Free tour II 点分治+启发式合并+未调完
题意翻译 给定一棵n个点的树,树上有m个黑点,求出一条路径,使得这条路径经过的黑点数小于等于k,且路径长度最大 Code: #include <bits/stdc++.h> using n ...
- 【转载】java 监听文件或者文件夹变化的几种方式
1.log4j的实现的文件内容变化监听 package com.jp.filemonitor; import org.apache.log4j.helpers.FileWatchdog; public ...
- swift-正则验证手机号码
// 手机号验证正则表达式 func validateMobile(phoneNum:String)-> Bool { // 手机号以 13 14 15 18 开头 八个 \d 数字字符 let ...
- [Ynoi2015]此时此刻的光辉
题目大意: 给定一个序列,每次询问一段区间的数的乘积的约数个数. 解题思路: 在太阳西斜的这个世界里,置身天上之森.等这场战争结束之后,不归之人与望眼欲穿的众人, 人人本着正义之名,长存不灭的过去.逐 ...
- HTML表示RGB颜色的方法
NAME:red,orange,yellow,green,cyan,blue,purple RGB:rgb(r,g,b) RGBA:rgba(r,g,b,a) r.g.b.a取值范围为:0-255 H ...
- 【hihocoder 1473】小Ho的强迫症
[题目链接]:http://hihocoder.com/problemset/problem/1473 [题意] [题解] 假定初始为在在0位置(相对它左边那条线); 则考虑; 多少步之后,人又能这到 ...