您的位置:首页 > 其它

[正文]流-StreamReader和TextReader

2018-04-08 21:39 106 查看
#region StreamReader

StreamReader sr1 = new StreamReader(std1, Encoding.Default);

Stream sr3 = sr1.BaseStream;
bool sr4 = sr1.EndOfStream;//是否在流的末尾
Encoding sr5 = sr1.CurrentEncoding;
int sr6 = sr1.Peek();//下一个要读取的字符的整数,没有要读取的字符或该流不支持查找,则为 -1。
int sr7 = sr1.Read();//读取输入流中的下一个字符并使该字符的位置提升一个字符。

char[] bt1 = new char[sr1.BaseStream.Length];
int sr8 = sr1.Read(bt1, 0, bt1.Length);//填充char[]
int sr9 = sr1.ReadBlock(bt1, 0, bt1.Length);//填充char[]

//读取中都存在 异步的函数 如:ReadLineAsync()

sr1.Close();
sr1.Dispose();

StreamReader sr2 = new StreamReader("2.txt", Encoding.Default);

string sr10 = sr2.ReadLine();//读取一行,返回string
string st11 = sr2.ReadToEnd();//读取全部txt

sr2.DiscardBufferedData();
sr2.Dispose();
sr2.Close();

std1.Close();
std1 = new FileStream("2.txt", FileMode.Open);
//写入前不可以使用StreamReader读取??std1流读取后,没有关闭,所以不能再使用写的操作
StreamWriter sw1 = new StreamWriter(std1, Encoding.Default);

//获取或设置由当前 TextWriter 使用的行结束符字符串。
string ss = sw1.NewLine;

//在原先的流 的文件头插入
sw1.Write('4');
sw1.Write("555");
sw1.WriteLine("555fffffffffff");
//实际结果是:
//4555555fffffffffff+文件原本内容

//将其缓冲区刷新到基础流true?
sw1.AutoFlush = true;

sw1.Flush();
sw1.Dispose();
sw1.Close();

//追加为true,覆盖为false,false不存在可新建一个
StreamWriter sw2 = new StreamWriter("2.txt", true, Encoding.Default);

//在文件末尾插入
char[] csw2 = new char[9] { '1', '1', '1', '1', '1', '1', '1', '1', '2' };
sw2.Write(csw2, 0, 3);//3是写入的最大长度

sw2.Flush();
sw2.Dispose();
sw2.Close();

#endregion

#region TextReader

//StreamWriter继承了TextWriter类,而TextReader和TextWriter都是抽象类

//多种读取的方法
TextReader txtr1 = new TextReader("2.txt", FileMode.Open);
//支持多种类型的写入
TextWriter txtw1 = new TextWriter("2.txt", FileMode.Open);

#endregion

作者:FengYang

博客地址:http://blog.csdn.net/qq_28140365

版权声明:如果感觉文章哪里写的不对或者存在疑问,欢迎留言,共同学习、进步!

蓝色字体为链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息