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;
C#窗体 流的更多相关文章
- C#窗体 WinForm 对话框,流
一.对话框 ColorDialog:颜色选择控件 private void button1_Click(object sender, EventArgs e) { //显示颜色选择器 colorDia ...
- 2017年11月26日 C#流&&窗体对话框
C#流 在顶端加入using System.IO就可以使用流 StreamReder a = new StreamReder();//读取 前面什么都可以 = sr.ReadToEnd();//用法 ...
- 关于跨进程使用回调函数的研究:以跨进程获取Richedit中RTF流为例(在Delphi 初始化每一个TWinControl 对象时,将会在窗体 的属性(PropData)中加入一些标志,DLL的HInstance的值与HOST 进程的HInstance并不一致)
建议先参考我上次写的博文跨进程获取Richedit中Text: 获得QQ聊天输入框中的内容 拿到这个问题,我习惯性地会从VCL内核开始分析.找到TRichEdit声明的单元,分析TRichEdit保存 ...
- Java基础--Java---IO流------GUI(布局)、Frame、事件监听机制、窗体事件、Action事件、鼠标事件、对话框Dialog、键盘事件、菜单
* 创建图形化界面 * 1.创建frame窗体 * 2.对窗体进行基本设置 * 比如大小.位置.布局 * 3.定义组件 * 4.将组件通过窗体的add方法添加到窗体 * 5.让窗体显 ...
- 5.JAVA之GUI编程窗体事件
我们回顾下第三篇时的内容: 在3.JAVA之GUI编程Frame窗口中窗体是无法直接关闭的,想要关闭须进程管理器结束进程方式关掉. 现在我们就来解决下这个问题. ******************* ...
- 前端必须了解的布局常识:普通流(normal flow)
目录 一.概述 二.块级元素和内联元素 常见的块级元素 BFC 常见的行内元素 IFC 三.哪些情况会脱离普通流 浮动 绝对定位 固定定位 display:none 四.总结 五.参考资料 一.概述 ...
- winform窗体(五)——布局方式
一.默认布局 ★可以加panel,也可以不加: ★通过鼠标拖动控件的方式,根据自己的想法布局.拖动控件的过程中,会有对齐的线,方便操作: ★也可选中要布局的控件,在工具栏中有对齐工具可供选择,也有调整 ...
- 在c#中IO流读写操作
1.使用FileStream读写文件 文件头: using System;using System.Collections.Generic;using System.Text;using System ...
- html/css基础篇——DOM中关于脱离文档流的几种情况分析
所谓的文档流,指的是元素排版布局过程中,元素会自动从左往右,从上往下的流式排列.并最终窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素.脱离文档流即是元素打乱了这个排列,或是从排版中拿走. ...
随机推荐
- 关于C# WinForm 边框阴影窗体(一)
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- 用简单直白的方式讲解A星寻路算法原理
很多游戏特别是rts,rpg类游戏,都需要用到寻路.寻路算法有深度优先搜索(DFS),广度优先搜索(BFS),A星算法等,而A星算法是一种具备启发性策略的算法,效率是几种算法中最高的,因此也成为游戏中 ...
- HTML DOM随笔
编程接口 所有 HTML 元素被定义为对象,而编程接口则是对象方法和对象属性. 方法是您能够执行的动作(比如添加或修改元素). 属性是您能够获取或设置的值(比如节点的名称或内容). getElemen ...
- Vue.js基本规则提炼总结及计算属性学习
Vue.js基本须知: 1)以“{{}}”格式 “Mustache” 语法(双大括号)来绑定表达式输出文本值; 2)以“{{{}}}”格式绑定原始的html,绑定的表达式内为字符串格式的html内容, ...
- linux笔记六-------文件权限设置
1.文件(目录)权限本身划分:读read 写write 执行execute 权限从用户的角度划分:主人权限user 同组用户权限group 其他组用户的权限other music. ...
- VMwareTools安装笔记
1.首先确保你的虚拟机正在运行. 2.右键点击“安装VMwareTools”,如果安装过了,会显示“重新安装...” 3.系统会自动打开VMwareTools的目录,(一般都会自动打开,因为系统一般会 ...
- Cocos2dx集成于windows桌面窗口程序的步骤
2D游戏需要做编辑器,而编辑器总是希望可以复用游戏中的逻辑来运行场景试看效果. 对于cocos2dx开发的程序,这个需求可以描述为: 实现一种方法,在桌面窗口程序中的某个控件上显示cocos2dx的场 ...
- 简单的cc攻击防御
简单的cc攻击防御cckiller 一.下载#wget wget --no-check-certificate https://zhangge.net/wp-content/uploads/files ...
- Flink - RocksDBStateBackend
如果要考虑易用性和效率,使用rocksDB来替代普通内存的kv是有必要的 有了rocksdb,可以range查询,可以支持columnfamily,可以各种压缩 但是rocksdb本身是一个库,是跑在 ...
- Ubuntu 安装java环境搭建
1.下载JDK 8从http://www.oracle.com/technetwork/java/javasebusiness/downloads/选择下载JDK的最新版本 JDK 8. 2.解压文件 ...