An enhanced cipher component that maintains a log file : FileStream « File Stream « C# / C Sharp






An enhanced cipher component that maintains a log file

An enhanced cipher component that maintains a log file
  
/*
C#: The Complete Reference 
by Herbert Schildt 

Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// An enhanced cipher component that maintains a log file.  
using CipherLib; // import CipherComp's namespace  
  
using System;  
using System.ComponentModel;  
using System.IO;  
  
namespace CipherLib {  
  
  // An Cipher component that maintains a log file. 
  class CipherComp : Component {   
    static int useID = 0; 
    int id; // instance id 
    bool isDisposed; // true if component is disposed.  
    FileStream log; 
  
    // Constructor  
    public CipherComp() {  
      isDisposed = false; // component not disposed  
      try {  
        log = new FileStream("CipherLog" + useID, FileMode.Create);  
        id = useID; 
        useID++; 
      } catch (FileNotFoundException exc) {  
        Console.WriteLine(exc);  
        log = null; 
      }  
    }  
 
    // Destructor  
    ~CipherComp() {  
       Console.WriteLine("Destructor for component " 
                         + id); 
       Dispose(false);  
    }  
  
    // Encode the file. Return and store result. 
    public string Encode(string msg) {  
  
      string temp = "";  
  
      for(int i=0;i < msg.Length; i++)   
        temp += (char) (msg[i] + 1);          
  
      // Store in log file.  
      for(int i=0; i < temp.Length; i++)  
        log.WriteByte((byte) temp[i]);  
  
      return temp; 
    }  
  
    // Decode the message. Return and store result.  
    public string Decode(string msg) {  
  
      string temp = "";  
  
      for(int i=0; i < msg.Length; i++)  
        temp += (char) (msg[i] - 1);  
  
      // Store in log file.  
      for(int i=0; i < temp.Length; i++)  
        log.WriteByte((byte) temp[i]);  
 
      return temp; 
    }  
  
    protected override void Dispose(bool dispAll) {  
      Console.WriteLine("Dispose(" + dispAll + 
                        ") for component " + id); 
 
      if(!isDisposed) {  
        if(dispAll) {  
          Console.WriteLine("Closing file for " + 
                            "component " + id); 
          log.Close(); // close encoded file  
          isDisposed = true;  
        }  
        // no unmanaged resources to release  
        base.Dispose(dispAll);  
      }  
    }  
  }  
}

// Another client that uses CipherComp.  
  
  
public class CipherCompClient1 {  
  public static void Main() {  
    CipherComp cc = new CipherComp();  
  
    string text = "Testing";  
  
    string ciphertext = cc.Encode(text);  
    Console.WriteLine(ciphertext);  
  
    string plaintext = cc.Decode(ciphertext);  
    Console.WriteLine(plaintext);  
 
    text = "Components are powerful."; 
 
    ciphertext = cc.Encode(text);  
    Console.WriteLine(ciphertext);  
  
    plaintext = cc.Decode(ciphertext);  
    Console.WriteLine(plaintext);  
  
    cc.Dispose(); // free resources  
  }  
}

           
         
    
  








Related examples in the same category

1.Create a file stream with new FileStream("test.bin", FileMode.Create)
2.Set File IO Permission to c:
3.FileStream with FileMode.Create and FileMode.Open
4.Reads lines separated by vertical barsReads lines separated by vertical bars
5.Reads strings from a file created in a text editorReads strings from a file created in a text editor
6.Create StreamReader from File Stream
7.illustrates reading and writing binary dataillustrates reading and writing binary data
8.illustrates use of FileStreamsillustrates use of FileStreams
9.illustrates use of FileStreams 2illustrates use of FileStreams 2
10.A simple disk-to-screen utility that demonstrates a FileReaderA simple disk-to-screen utility that 
   demonstrates a FileReader
11.Compare two files
12.Using FileStreams
13.Reading and Writing Files
14.Seek from Begin
15.Write byte array to a file
16.FileStream Class supporting both synchronous and asynchronous read and write operations.
17.Create FileStream for ASCII encoding
18.Create FileStream class with the specified path and creation mode.
19.Create FileStream with specified path, creation mode, read/write and sharing permission
20.Gets a value indicating whether the current stream supports reading.
21.Gets a value indicating whether the current stream supports seeking.
22.Gets a value indicating whether the current stream supports writing.
23.Can read and write
24.Reads a block of bytes from the stream and writes the data in a given buffer.
25.Sets the current position of this stream to the given value.
26.Read file fully