【C#】对文本、图片、音频文件的读取与写入
2016-01-16 14:40
375 查看
对于文件的存储都采用流(System.IO.Stream)形式存储与读取
1.文件流——FileStream 包括: StreamWriter和 BinaryWriter
2.缓存流——BufferStream
3.内存流——MemoryStream
4.网络流——NetworkStream
注:针对文本形式的采用————StreamWriter和 StreamReader类;
对与图片,压缩文件等二进制流文件采用———— BinaryWriter和 BinaryReader类
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一、 //对文本的操作,即读取与写入( StreamWriter和 StreamReader)
二、 //对图片的操作,即读取与写入( BinaryWriter和 BinaryReader )
三、 //对音频的操作,即读取与写入( BinaryWriter和 BinaryReader )
1.文件流——FileStream 包括: StreamWriter和 BinaryWriter
2.缓存流——BufferStream
3.内存流——MemoryStream
4.网络流——NetworkStream
注:针对文本形式的采用————StreamWriter和 StreamReader类;
对与图片,压缩文件等二进制流文件采用———— BinaryWriter和 BinaryReader类
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一、 //对文本的操作,即读取与写入( StreamWriter和 StreamReader)
public void OperatFile() { if (ishe==false ) { SaveFileDialog sfd1 = new SaveFileDialog(); sfd1.InitialDirectory = @"C:\My\Text"; //设置文件保存类型 sfd1.Filter = "txt文件|*.txt|所有文件|*.*"; //如果用户没有输入扩展名,自动追加后缀 sfd1.AddExtension = true; //设置标题 sfd1.Title = "file"; if (sfd1.ShowDialog() == DialogResult.OK) { FileStream fs = new FileStream(Path.GetFileName(sfd1.FileName), FileMode.Open, FileAccess.ReadWrite); StreamWriter sw = new StreamWriter(fs); sw.Write(textBoxX1.Text,Encoding.Default); sw.Close(); fs.Close(); } labelX1.Text = "文件保存成功!"; } else { OpenFileDialog ofd1 = new OpenFileDialog(); ofd1.Filter = "txt文件|*.txt|所有文件|*.*"; if (ofd1.ShowDialog() == DialogResult.OK) { FileStream fs = new FileStream(ofd1.FileName, FileMode.Open, FileAccess.ReadWrite); StreamReader sr = new StreamReader(fs, Encoding.Default); s = sr.ReadLine(); while (sr.Peek() != -1) { textBoxX1.Text += s; s = sr.ReadLine(); } sr.Close(); fs.Close(); } labelX1.Text = "打开文件:" + ofd1.FileName; } labelX1.Text = "文件保存成功!"; }
二、 //对图片的操作,即读取与写入( BinaryWriter和 BinaryReader )
public void OperatImage() { if (ishe == false) { OpenFileDialog ofd1 = new OpenFileDialog(); // ofd1.Filter = "bin文件|*.bin"; ofd1.Filter = "jpg图片|*.jpg|gif图片|*.gif|png图片|*.png"; if (ofd1.ShowDialog() == DialogResult.OK) { FileStream fs = new FileStream(ofd1.FileName, FileMode.Open); BinaryReader br = new BinaryReader(fs); int lenth = Convert.ToInt32(br.BaseStream.Length); bytes = br.ReadBytes(lenth); using (FileStream fs1 = new FileStream(@"G:\My\Picture\text.bin", FileMode.Create)) { BinaryWriter bw = new BinaryWriter(fs1); for (int i = 0; i < bytes.Length; i++) { bw.Write(bytes[i]); } bw.Close(); } br.Close(); fs.Close(); MemoryStream ms = new MemoryStream(bytes); //设置图片框 pictureBox1中的图片 this.pictureBox1.Image = Image.FromStream(ms); } } else { OpenFileDialog ofd1 = new OpenFileDialog(); ofd1.Filter = "bin文件|*.bin"; // ofd1.Filter = "jpg图片|*.jpg|gif图片|*.gif|png图片|*.png"; if (ofd1.ShowDialog() == DialogResult.OK) { FileStream fs = new FileStream(ofd1.FileName, FileMode.Open); BinaryReader br = new BinaryReader(fs); int lenth = Convert.ToInt32(br.BaseStream.Length); bytes = br.ReadBytes(lenth); br.Close(); fs.Close(); //实例化一个内存流--->把从文件流中读取的内容[字节数组]放到内存流中去 MemoryStream ms = new MemoryStream(bytes); //设置图片框 pictureBox1中的图片 this.pictureBox1.Image = Image.FromStream(ms); } labelX2.Text = "打开文件:" + ofd1.FileName; } }
三、 //对音频的操作,即读取与写入( BinaryWriter和 BinaryReader )
public void OperatAudio() { if (ishe == false) { OpenFileDialog ofd1 = new OpenFileDialog(); ofd1.Filter = "mp3音频|*.mp3|wma音频|*.wma"; if (ofd1.ShowDialog() == DialogResult.OK) { FileStream fs = new FileStream(ofd1.FileName, FileMode.Open); BinaryReader br = new BinaryReader(fs); int lenth = Convert.ToInt32(br.BaseStream.Length); bytes = br.ReadBytes(lenth); using (FileStream fs1 = new FileStream(@"G:\My\Video\text.bin", FileMode.Create)) { BinaryWriter bw = new BinaryWriter(fs1); for (int i = 0; i < bytes.Length; i++) { bw.Write(bytes[i]); } bw.Close(); } br.Close(); fs.Close(); } } else { OpenFileDialog ofd1 = new OpenFileDialog(); ofd1.Filter = "bin文件|*.bin"; if (ofd1.ShowDialog() == DialogResult.OK) { FileStream fs = new FileStream(ofd1.FileName, FileMode.Open); BinaryReader br = new BinaryReader(fs); FileStream fs1 = new FileStream(@"G:\My\Video\text.mp3", FileMode.Create); BinaryWriter bw = new BinaryWriter(fs1); int lenth = Convert.ToInt32(br.BaseStream.Length); bytes = br.ReadBytes(lenth); bw.Write(bytes); bw.Close(); fs1.Close(); br.Close(); fs.Close(); } labelX2.Text = "打开文件:" + ofd1.FileName; } }
相关文章推荐
- C# 版本设计模式(Design Pattern)---------------总序
- lock与C#多线程
- WPF中给datagrid控件中dataTable添加新行,并选中设为当前行(源码加注释)
- C#委托的介绍(delegate、Action、Func、predicate)
- C#基础实例
- C#精确计算算法运行时间
- C#基础回顾(三)—索引器、委托、反射
- 跟siki老师学C#第三天(上)
- VS2013编写的C#程序,在xp下会报错说“不是合法的win32程序”。
- C# 基础 学习 之 数据类型转换
- C#遍历指定文件夹中的所有文件(转)
- C#排序1(冒泡排序、直接排序、快速排序)
- C#技术------垃圾回收机制(GC)
- c# winform进入窗口后在文本框里的默认焦点
- C#判断文件是复制还是剪切
- C#基础学习
- C#基础练习(事件登陆案例)
- C#基础练习(事件登陆案例)
- C#基础练习(时间的三连击)
- C#基础练习(时间的三连击)