Web hosting unlimited bandwidth - CHAPTER 16 THE SYSTEM.IO NAMESPACE 533 //
CHAPTER 16 THE SYSTEM.IO NAMESPACE 533 // Encode a string as an array of bytes. string msg = “Hello!”; byte[] msgAsByteArray = Encoding.Default.GetBytes(msg); // Write byte[] to file. fStream.Write(msgAsByteArray, 0, msgAsByteArray.Length); // Reset internal position of stream. fStream.Position = 0; // Read the types from file and display to console. Console.Write(”Your message as an array of bytes: “); byte[] bytesFromFile = new byte[msgAsByteArray.Length]; for (int i = 0; i < msgAsByteArray.Length; i++) { bytesFromFile[i] = (byte)fStream.ReadByte(); Console.Write(bytesFromFile[i]); } // Display decoded messages. Console.Write("nDecoded Message: "); Console.WriteLine(Encoding.Default.GetString(bytesFromFile)); // Close stream. fStream.Close(); } While this example does indeed populate the file with data, it punctuates the major downfall of working directly with the FileStream type: it demands to operate on raw bytes. Other Stream-derived types operate in a similar manner. For example, if you wish to write a sequence of bytes to a region of memory, you can allocate a MemoryStream. Likewise, if you wish to push an array of bytes through a network connection, you can make use of the NetworkStream type. Thankfully, the System.IO namespace provides a number of reader and writer types that encapsulate the details of working with Stream-derived types. Source Code The FileStreamApp project is included under the Chapter 16 subdirectory. Working with StreamWriters and StreamReaders The StreamWriter and StreamReader classes are useful whenever you need to read or write characterbased data (e.g., strings). Both of these types work by default with Unicode characters; however, you can change this by supplying a properly configured System.Text.Encoding object reference. To keep things simple, let s assume that the default Unicode encoding fits the bill. StreamReader derives from an abstract type named TextReader, as does the related StringReader type (discussed later in this chapter). The TextReader base class provides a very limited set of functionality to each of these descendents, specifically the ability to read and peek into a character stream. The StreamWriter type (as well as StringWriter, also examined later in this chapter) derives from an abstract base class named TextWriter. This class defines members that allow derived types to write textual data to a given character stream. The relationship between each of these new I/Ocentric types is shown in Figure 16-7.
We recommend high quality webhost to host and run your jsp application: christian web host services.