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中关于脱离文档流的几种情况分析
所谓的文档流,指的是元素排版布局过程中,元素会自动从左往右,从上往下的流式排列.并最终窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素.脱离文档流即是元素打乱了这个排列,或是从排版中拿走. ...
随机推荐
- Selenium_用selenium webdriver实现selenium RC中的类似的方法
最近想总结一下学习selenium webdriver的情况,于是就想用selenium webdriver里面的方法来实现selenium RC中操作的一些方法.目前封装了一个ActionDrive ...
- python select
server #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ @author: zengchunyun " ...
- Oracle基础及三层分页查询
一.数据库表空间和数据文件 解析:一个数据库下可以开N个表空间,一个表空间可以包含N个数据文件.表空间是逻辑概念. 二.关于listener.ora位置 修改该界面上的数据,会影响指定路径的监听配置文 ...
- 【LeetCode】1. Two Sum
题目: Given an array of integers, return indices of the two numbers such that they add up to a specifi ...
- jquery过滤器
<html> <head> <meta charset="UTF-8"> <title>Document</title> ...
- 在html中如何获取表单提交的数据
a.html: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www ...
- acm常见算法及例题
转自:http://blog.csdn.net/hengjie2009/article/details/7540135 acm常见算法及例题 初期:一.基本算法: (1)枚举. (poj17 ...
- 第一个django
4.创建第一个Django工程 Django环境算是配置完成了,你可以到命令提示符下创建第一个Django应用,进入某个目录,执行django-admin.py startproject myproj ...
- Mac 系统下cocos2dx 环境变量设置
Mac 系统环境变量设置 vim ~/.bash_profile export PATH=$PATH:/Users/wangchengcheng/Downloads/LearningSoft ...
- 关于格式转换 “%a.bs”
这个形式的格式转换符用于输出, 如果a <= b, 那么输出的字符串串长大于等于a, 小于b; 否则, 输出的串长按照a指定的输出. (不够,用空格补齐)