Page Filter Stream : Stream Read Write « File Stream « C# / C Sharp






Page Filter Stream

    

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace ARF.Web.Utility
{
    public class PageFilterStream : Stream
    {
        private StringBuilder _response = new StringBuilder();
        private Stream _outStream;

        public PageFilterStream(Stream outStream)
        {
            _outStream = outStream;
        }

        public override void Write(byte[] buffer, int offset, int count)
        {
            _response.Append(Encoding.UTF8.GetString(buffer, offset, count));
        }

        public override int Read(byte[] buffer, int offset, int count)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        public override long Length
        {
            get { return _response.Length; }
        }

        public override void Close()
        {

            if (_response.Length > 0)
            {
                byte[] arBytes = Encoding.UTF8.GetBytes(_response.ToString());
                _outStream.Write(arBytes, 0, arBytes.Length);
            }

            _outStream.Close();
            //base.Close();
        }
        public override bool CanWrite
        {
            get { return true; }
        }
        public override bool CanRead
        {
            get { return false; }
        }

        public override void SetLength(long value)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        public override long Seek(long offset, SeekOrigin origin)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        public override bool CanSeek
        {
            get { return false; }
        }

        public override bool CanTimeout
        {
            get
            {
                return base.CanTimeout;
            }
        }

        public override long Position
        {
            get
            {
                throw new Exception("The method or operation is not implemented.");
            }
            set
            {
                throw new Exception("The method or operation is not implemented.");
            }
        }

        public override void Flush()
        {
            //_response = new StringBuilder();
            return;
        }

    }
}

   
    
    
    
  








Related examples in the same category

1.Use StreamWriter to create a text file
2.Reading from a text file line by line
3.Read data in line by line
4.StreamReader.ReadLine
5.Catch file read exception and retry
6.Construct StreamWriter from FileSream
7.Create a StreamWriter in UTF8 mode
8.StreamReader And Writer
9.illustrates reading and writing text dataillustrates reading and writing text data
10.Asynchronously reads a streamAsynchronously reads a stream
11.The use of a buffered stream to serve as intermediate data holder for another streamThe use of a buffered stream to serve as intermediate data holder for another stream
12.Demonstrates attaching a StreamReader object to a stream
13.Demonstrates attaching a StreamWriter object to a stream
14.A simple key-to-disk utility that demonstrates a StreamWriterA simple key-to-disk utility that 
   demonstrates a StreamWriter
15.Open a file using StreamWriterOpen a file using StreamWriter
16.A help program that uses a disk file to store help informationA help program that uses a disk file 
   to store help information
17.Try and catch exceptions for StreamWriter
18.Using StreamWriter 3
19.Utility class that provides methods to manipulate stream of data.
20.Reads a stream into a byte array.
21.Copies one stream into another.
22.Copy Stream from fromStream to toStream
23.Enumerate Lines for StreamReader
24.Enumerate non-empty Lines for StreamReader
25.Fifo Stream
26.Read from stream
27.Read from a Stream ensuring all the required data is read.
28.Serializes and object to a stream. It will flush and close the underlying stream.
29.Add OutputStream and InputStream to IDbCommand
30.Read Stream to End
31.Copy Stream and close
32.Stream Converter
33.Buffered InputStream
34.Copies an Stream into another Stream.