C#学习笔记之六(stream, Asynchronous data read, HttpWebRequest

原创 2007年09月17日 15:02:00
 

Streaming Data:

 // Explorer Directory
 string dir = @"C:/Winnt";
 DirectoryInfo dirInfo = new DirectoryInfo(dir); 
 
 //read and write File
 Stream inputStream = File.OpenRead(@"c:/test/source/hamlet.txt");
 Stream outputStream = File.OpenWrite(@"c:/test/source/hamlet.bak");
 byte[] buff = new Byte[SizeBuff];
 int byteRead;
 
 bytesRead = inputStream.Read(buffer, 0, SizeBuff);
 while (bytesRead >0)
 {
  outputStream.Write(buffer, 0 bytesRead);
  bytesRead = inputStream.Read(buffer, 0, SizeBuff);
 }
 inputStream.Close();
 outputStream.Close();

 //buffed stream
 Stream inputStream = File.OpenRead(@"c:/test/source/hamlet.txt");
 Stream outputStream = File.OpenWrite(@"c:/test/source/hamlet.bak");
 BufferedStream buffIn = new BufferedStream(inputstream);
 BufferedStream buffOut = new BufferedStream(outputStream);
 
 byte[] buffer = new Byte[SizeBuff]; 
 int bytesRead;
 while ((bytesRead = buffIn.Read(buffer.0,SizeBuff))> 0)
 {
  buffOut.Write(buffer,0, butesRead)
 }
 buffOut.Flush();
 buffIn.close();
 buffOut.close();
 
 //StreamRead, work with text file
 Fileinfo theSourceFile = new FileInfo(
  @"c:/test/source/hamlet.txt");
 StreamReader reader = theSourceFile.OpenText();
 StreamWriter writer = new StreamWriter(@"c:/hamlet.bak", false);
 string text;
 do {
  text = reader.ReadLine();
  writer.WriteLine(text);
 } wheil (text != null);

Asynchronous:
//Steps:
//1. Begin Read(), Give Buffer,CallBack method
//2. When buffer is filled, call CallBack fucntion and send back AsyncResult token
//3. In CallBack method call EndRead() and send back got token AsyncResult
//4. Data is available
 public class AsyncTest{
 private Stream inStream;
 private AsyncCallback callBackMethod;
 private byte[] buffer;
 
 AsyncTest()
 {
  inStream = File.OpenRead(@"c:/a.txt");
  buffer = new byte[BuffSize];
  callBackMethod = new AsyncCallback(this.OnCompletedRead);
  
  
 }
 void OnCompletedRead(IAsyncResult asyncResult)
 {
  int bytesRead = inStream.EndRead(asyncResult);
  if (butesRead >0)
  {
   string s =
    Encoding.ASCII.GetString(buffer, 0, butesRead);
   inStream.BeginRead(buffer, 0, buffer.Length,
    callBackMethod, null);
  }
 }
 public Main()
 {
  AsyncTest tester = new AsyncTest();
  inStream.BeginRead(
   buffer,
   0, //offset
   buffer.Length,
   callBackMethod, //call back delegate
   null );  //local state object
    
  for(long i = 0; i< 500000, i++)
  {
   Console.WriteLine("i: {0}", i);
  }
  
 }
 } 
HttpWebRequest:
 //1. call WebRequest.Create(), static method, will return WebRequest
 //2. call WebRequest.GetResponse(), instance method, return a WebResponse
 //3. call WebResponse.GetResponseStream, instance method, return a stream reader
 //4. call streamReader.ReadToEnd() return a string with the entire stream
 using System.Net;
 using System.Sockets;
 HttpWebRequest webRequest = (HttpWebRequest) WebRequest.Create("http://a.com");
 HttpWebResponse webResponse = (HttpWebResponse) webRequest.GetResponse();
 StreamReader streamReader = new StreamReade(
  webResponse.GetResponseStream(), Encoding.ASCII);
  try
  {
   string outputString;
   outputString = streamReader.ReadToEnd();
   Console.WriteLine(outputStirng);
  }  
  catch {}
 }


作者Blog:http://blog.csdn.net/bugfree/
相关文章
 

zynq-7000学习笔记(六)——HLS综合FAST corner并导出IP

PC平台:WINDOWS 10 64位 Xilinx设计开发套件:Xilinx_vivado_sdk_2015.2 开发板:Zed Board 参考文档:XAPP1167         ...
  • luotong86
  • luotong86
  • 2016年08月23日 10:18
  • 3212

openCV学习笔记(6):Mat类/数据结构详解(1)

Mat类详解以及创建Mat对象
  • chentravelling
  • chentravelling
  • 2015年04月08日 15:58
  • 1579

Coursera吴恩达机器学习课程 总结笔记及作业代码——第6周有关机器学习的小建议

1.1 Deciding what to try next当你调试你的学习算法时,当面对测试集你的算法效果不佳时,你会怎么做呢? 获得更多的训练样本? 尝试更少的特征? 尝试获取附加的特征? 尝试增加...
  • qq_27008079
  • qq_27008079
  • 2017年05月21日 15:58
  • 3992

学习笔记20151211——AXI4 STREAM DATA FIFO

AXI4 STREAM DATA FIFO是输入输出接口均为AXIS接口的数据缓存器,和其他fifo一样是先进先出形式。可以在跨时钟域的应用中用于数据缓冲,避免亚稳态出现。支持数据的分割和数据拼接。...
  • qq_20748649
  • qq_20748649
  • 2015年12月11日 16:09
  • 5019

C#利用HttpWebRequest,Stream,HttpWebResponse,StreamReader获取post返回的数据

C#利用HttpWebRequest,Stream,HttpWebResponse,StreamReader获取post返回的数据
  • Canonzki
  • Canonzki
  • 2016年07月27日 17:36
  • 2785

C#中HttpWebRequest用Post提交Content-Type: multipart/form-data;

在C#中有HttpWebRequest类,可以很方便用来获取http请求,但是这个类对Post方式没有提供一个很方便的方法来获取数据。网上有很多人提供了解决方法,但都参差不齐,这里我把我使用的方法总结...
  • shifeilongsuper
  • shifeilongsuper
  • 2016年01月10日 21:41
  • 976

C#中HttpWebRequest用Post提交Content-Type: multipart/form-data; boundary=

在C#中有HttpWebRequest类,可以很方便用来获取http请求,但是这个类对Post方式没有提供一个很方便的方法来获取数据。网上有很多人提供了解决方法,但都参差不齐,这里我把我使用的方法总结...
  • flymorn
  • flymorn
  • 2011年09月12日 21:31
  • 15781

Oracle Data Integrator學習筆記

  • 2009年10月13日 14:15
  • 798KB
  • 下载

spring-data的学习笔记

  • 2017年11月06日 18:03
  • 129KB
  • 下载

Java8学习笔记:2.Stream流

今天学习总结了Stream(),在此备注: 惰性求值方法:类似sql查询的where条件,过滤stream的条件。如:filter() 及早求值函数:类似sql查询的seletct条件,直返结果。...
  • u013898617
  • u013898617
  • 2018年01月13日 20:48
  • 33
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: C#学习笔记之六(stream, Asynchronous data read, HttpWebRequest
举报原因:
原因补充:

(最多只允许输入30个字)