使用I/O流操作文本文件时主要用到StreamWrite类和StreamRead类。

1.StreamWrite类

(1)StreamWrite类专门用来处理文本文件的类。能够方便地想文本文件里写入字符串,同一时候负责重要的转换和处理向FileStream对象写入工作。

(2)经常使用的属性

Encoding               获取将输出写入到当中的Encoding

Formatprovider         获取控制格式设置的对象

NewLine                获取或设置由当前TextWriter使用的行结束符字符串

(3)经常使用的方法

Close                  关闭当前的StringWriter和基础流

Write                  写入到StringWriter的此实例中

WriteLine              写入重载參数指定的某些数据,后跟行结束符

2.StreamReader类

(1)专门用来读取文本文件的类。

(2)经常使用的方法

Close                  关闭StringReader

Read                   读取输入字符串中的下一个字符或下一组字符

ReadLine               从基础字符串中读取一行

ReadToEnd              将整个流或从流的当前位置到流的结尾作为字符串读取

3.实例代码--怎样对文本文件进行写入和读取

(1)控件解释

SaveFileDialog控件(一个)--显示“另存为”对话框

OpenFileDialog控件(一个)--显示“打开”对话框

TextBox控件(一个)--输入要写入文本文件的内容和显示选中文本文件的内容

Button控件(两个)--分别用来打开"另存为"和"打开"对话框

(2)重要代码

        private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == string.Empty)
{
MessageBox.Show("要写入的文件内容不能为空");
}
else
{
//设置保存文件的格式
saveFileDialog1.Filter = "文本文件(*.txt)|*.txt";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
//使用“另存为”对话框中输入的文件名称实例化StreamWriter对象
StreamWriter sw = new StreamWriter(saveFileDialog1.FileName, true);
//向创建的文件里写入内容
sw.WriteLine(textBox1.Text);
//关闭当前文件写入流
sw.Close();
textBox1.Text = string.Empty;
}
}
}
private void button2_Click(object sender, EventArgs e)
{
//设置打开文件的格式
openFileDialog1.Filter = "文本文件(*.txt)|*.txt";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Text = string.Empty;
//使用“打开”对话框中选择的文件实例化StreamReader对象
StreamReader sr = new StreamReader(openFileDialog1.FileName);
//调用ReadToEnd方法读取选中文件的所有内容
textBox1.Text = sr.ReadToEnd();
//关闭当前文件读取流
sr.Close();
}
}

(3)执行截图:

点击读取出来打开框,即前面所说的SaveFileDialog控件的显示

点击写入button,出来另存为框,即前面所说的OpenFileDialog控件的显示

C#--I/O流操作文本文件之StreamWrite类和StreamReader类的更多相关文章

  1. 流与文本文件操作(C#)

    1.流的基本概念 流是任何输入输出库的必不可少的组成部分.当你的程序需要从一个外部数据源(比如,files.other PCs或servers等)读或者写数据时,就需要用到流streams. 流是由一 ...

  2. c++ ofstream & ifstream文件流操作

    ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; //ofstream & ifstream inherit from istream class ...

  3. io流操作大全

    JAVA 中的IO流 一.流的概念        流(stream)的概念源于UNIX中管道(pipe)的概念.在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备.外部 ...

  4. Stream 流操作

     Stream 类 先看下面的图 Stream 是所有流的抽象基类(不能被实例化,需要使用他的派生类FileStream/MemoryStream/BufferedStream).流是字节序列的抽象概 ...

  5. c#基础语言编程-文件流操作

    引言 在System.IO 命名空间下提供了一系列的类,我们可以通过相应的类进行文件.目录.数据流的操作. 1.File类:提供用于创建.复制.删除.移动和打开文件的静态方法.File类 2.File ...

  6. 使用Java操作文本文件的方法详解

    使用Java操作文本文件的方法详解 摘要: 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而 ...

  7. Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律

    第一讲     IO概述 概述 1.IO流:即InputOutput的缩写. 2.特点: 1)IO流用来处理设备间的数据传输. 2)Java对数据的操作是通过流的方式. 3)Java用于操作流的对象都 ...

  8. Java转换流、缓冲流、流操作规律整理

    转换流 1.1                OutputStreamWriter类 OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流中的字符编码成字 ...

  9. IO流----操作文件的9种方法代码实现

    IO流----操作文件的9种方法代码实现: 1:使用字节流读写数据: 四种方式: method1:          每次读写一个字节,边读边写: /* * 复制文本文件. * * 数据源:从哪里来 ...

随机推荐

  1. Cent OS 运行 Cuberite

    Cuberite 是一个轻量级的Minecraft服务端,由C++编写,性能比Mojang等等用java写的高很多. 在腾讯云的最低端VPS上,用Spigot建服的话,从主世界传送到下界用时要五六秒的 ...

  2. []ARC099

    C:普及组难度的题 D:令$S(n)$表示$n$的数位和,一个数$n$是Snuke number当且仅当对所有$m\gt n$有$\frac n{S(n)}\leq\frac m{S(m)}$,求出前 ...

  3. 【动态规划】bzoj1638 [Usaco2007 Mar]Cow Traffic 奶牛交通

    设f[u]为从度数0到u的路径条数,f2[u]为从u到n的路径条数. ans=max{f[x[i]]*f2[y[i]]}(1<=i<=m). #include<cstdio> ...

  4. 【递归】【栈】先修课 计算概论(A)/函数递归练习(2)5:布尔表达式

    总时间限制: 1000ms 内存限制: 65536kB 描述 输入一个布尔表达式,请你输出它的真假值. 比如:( V | V ) & F & ( F | V ) V表示true,F表示 ...

  5. codevs 4163 求逆序对的数目 -树状数组法

    4163 hzwer与逆序对  时间限制: 10 s  空间限制: 256000 KB  题目等级 : 黄金 Gold 题目描述 Description hzwer在研究逆序对. 对于数列{a},如果 ...

  6. 使用jQuery操作dom(追加和删除样式-鼠标移入移出)练习

    1.实现鼠标移入则添加背景色,鼠标移出则删除背景色 <!DOCTYPE html> <html> <head> <title>test1.html< ...

  7. Go beego框架使用笔记(一)

    Beego介绍 beego我认为是go初学者比较容易上手的一门MVC Web框架.简单易懂,最重要的一点就是提供了中文文档,这对于我这种英语能力比较差的人来说就是福音. beego的官网上是这么介绍b ...

  8. gitk图形界面中文乱码情况

    当打开gitk图形界面时,文件中的中文部分乱码了,这大部分是因为编码格式的问题,为了跟上时代的脚步,本人建议都是用utf-8编码. 为了方便,我将全局配置为utf-8编码: git config -- ...

  9. sersync部署

    rsync :  wget  http://rsync.samba.org/ftp/rsync/src/rsync-3.1.1.tar.gz Sersync: wget https://raw.git ...

  10. HBase 写优化之 BulkLoad 实现数据快速入库

    在第一次建立Hbase表的时候,我们可能需要往里面一次性导入大量的初始化数据.我们很自然地想到将数据一条条插入到Hbase中,或者通过MR方式等.但是这些方式不是慢就是在导入的过程的占用Region资 ...