【winfrom】读写文本
生活随笔
收集整理的這篇文章主要介紹了
【winfrom】读写文本
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//Stream 字節序列的一般視圖 讀取 寫入 查找
// 抽象類
//TextWriter(Reader) TextReader 讀取連續字符系列的讀取器 StreamWriter,StringWriter StreamReader
//StreamWriter(Reader) IDispose
//using(.....) 默認編碼 utf8
//FileStream 文件流 字節
//File FileInfo
//讀取private void button1_Click(object sender, EventArgs e){using (StreamReader sr = new StreamReader("mytext.txt")){Console.WriteLine(sr.ReadToEnd());string line = "";while ((line = sr.ReadLine()) != null){Console.WriteLine(line);}// //char[] buffer;// //buffer =new char[(int)sr.BaseStream.Length];// //sr.Read(buffer, 0, (int)sr.BaseStream.Length);// //Console.WriteLine(new string(buffer));}//文本復制到另一個文件里char[] buffer;using (StreamReader sr = new StreamReader("mytext.txt")){Encoding en = sr.CurrentEncoding;using (StreamWriter sw = new StreamWriter("mytextto.txt")){//char[] buffer;//int count=(int)sr.BaseStream.Length;//buffer = new char[count];//sr.Read(buffer, 0, count);//Task.Run(()=>sw.WriteAsync(buffer, 0, count));Encoding enw = sw.Encoding;buffer = new char[20];while (true){int r = sr.Read(buffer, 0, 20);if (r == 0) break;sw.Write(buffer, 0, 20);}}}}//寫入?
{using (TextWriter tw = new StreamWriter("mytext.txt", false)){tw.Write("sssssssssssss");//tw.Flush();tw.Write("ddddddddddd");//不換行tw.Write(tw.NewLine);//換行符//tw.Flush();tw.WriteLine("cccccccccccccc");//寫入,換行tw.WriteLine("eeeeeeeeeeeee");//Task t = tw.WriteAsync("ffffffffff");tw.Flush();//清理緩沖區,把緩沖區的數據寫入基礎 設備tw.Close();}}private void button2_Click(object sender, EventArgs e){//using(FileStream fs=new FileStream("mytext.txt",FileMode.Open,FileAccess.Read))//{// using(FileStream fs1=new FileStream("mytextto.txt",FileMode.OpenOrCreate,FileAccess.Write))//Append FileAccess.Write// {// byte[] buffer = new byte[1024*1024*5];// while(true)// {// int r = fs.Read(buffer, 0, buffer.Length);// if (r > 0)// fs1.Write(buffer, 0, r);// if (r < buffer.Length) break;// }// }//}using (FileStream fs = new FileStream("第一節DataSet與DataTable1.exe", FileMode.Open, FileAccess.Read)){using (FileStream fs1 = new FileStream("D:/第一節DataSet與DataTable2.exe", FileMode.OpenOrCreate, FileAccess.Write))//Append FileAccess.Write{byte[] buffer = new byte[1024 * 1024 * 5];while (true){int r = fs.Read(buffer, 0, buffer.Length);if (r > 0)fs1.Write(buffer, 0, r);if (r < buffer.Length) break;}}}}
private FileStream readFs;private FileStream writeFs;private int busize = 1024 * 1024 * 5;private byte[] buffer;
//異步讀寫文件
private void button4_Click(object sender, EventArgs e){buffer = new byte[busize];ReadFileAsync("第一節DataSet與DataTable1.exe");}?//異步讀取
private void ReadFileAsync(string fName){readFs = new FileStream(fName, FileMode.Open, FileAccess.Read, FileShare.Read, busize, true);IAsyncResult iResult = readFs.BeginRead(buffer, 0, buffer.Length, OnCompleteRead, null);}object lockbu = new object();?//異步讀的回調
private void OnCompleteRead(IAsyncResult iResult){int byteCount = readFs.EndRead(iResult);if (byteCount > 0){//寫讀取到的長度WriteFileAsync("D:/第一節DataSet與DataTable2.exe", byteCount);if (byteCount < busize)readFs.Close();elsereadFs.BeginRead(buffer, 0, busize, OnCompleteRead, null);}elsereadFs.Close();}?//異步寫
private void WriteFileAsync(string fName, int count){writeFs = new FileStream(fName, FileMode.Append, FileAccess.Write, FileShare.None, count, true);writeFs.BeginWrite(buffer, 0, count, OnCompleteWrite, null);writeFs.Close();}//異步寫的回調
private void OnCompleteWrite(IAsyncResult iResult){writeFs.EndWrite(iResult);}
轉載于:https://www.cnblogs.com/Microera/p/8648564.html
總結
以上是生活随笔為你收集整理的【winfrom】读写文本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 01_8_Struts用DomainMo
- 下一篇: Laravel 日期时间处理包 Carb