示例#1
0
        public void File_AppendText()
        {
            Console.WriteLine("File.AppendText()");

            var    utf8 = NativeMethods.DefaultFileEncoding.BodyName.ToUpperInvariant();
            string line;
            var    matchLine = string.Empty;
            var    tempFile  = Path.GetTempFileName();

            StreamReader streamRead;
            StreamWriter streamWrite;

            Console.WriteLine("Default AlphaFS Encoding: {0}", NativeMethods.DefaultFileEncoding.EncodingName);

            #region Create Filestream, CreateText()

            // Create filestream and append text as UTF-8, default.
            using (streamWrite = File.CreateText(tempFile))
            {
                streamWrite.Write(UnitTestConstants.TextHelloWorld);
            }

            // Read filestream contents.
            using (streamRead = File.OpenText(tempFile))
            {
                while ((line = streamRead.ReadLine()) != null)
                {
                    Console.WriteLine("\n CreateText(): [{0}] filestream: [{1}]\n  Appended: [{2}]\n  Content : [{3}]", streamRead.CurrentEncoding.EncodingName, tempFile, UnitTestConstants.TextHelloWorld, line);
                    matchLine = line; // Catch the last line.
                }
            }
            Assert.IsTrue(matchLine.Equals(UnitTestConstants.TextHelloWorld, StringComparison.OrdinalIgnoreCase));

            #endregion // Create Filestream, CreateText()

            #region AppendText() to Filestream

            // Append text as UTF-8, default.
            using (streamWrite = File.AppendText(tempFile))
            {
                streamWrite.Write(UnitTestConstants.TextGoodbyeWorld);
            }

            // Read filestream contents.
            using (streamRead = File.OpenText(tempFile))
            {
                while ((line = streamRead.ReadLine()) != null)
                {
                    Console.WriteLine("\n AppendText() as [{0}]\n  Appended: [{1}]\n  Content : [{2}]", utf8, UnitTestConstants.TextGoodbyeWorld, line);
                }
            }

            // Append text as UTF-8, default.
            using (streamWrite = File.AppendText(tempFile))
            {
                streamWrite.WriteLine(UnitTestConstants.TextUnicode);
            }

            // Read filestream contents.
            matchLine = string.Empty;
            using (streamRead = File.OpenText(tempFile))
            {
                while ((line = streamRead.ReadLine()) != null)
                {
                    Console.WriteLine("\n AppendText() as [{0}]\n  Appended: [{1}]\n  Content : [{2}]", utf8, UnitTestConstants.TextGoodbyeWorld, line);
                    matchLine = line; // Catch the last line.
                }
            }

            Assert.IsTrue(matchLine.Equals(UnitTestConstants.TextHelloWorld + UnitTestConstants.TextGoodbyeWorld + UnitTestConstants.TextUnicode, StringComparison.OrdinalIgnoreCase));

            File.Delete(tempFile, true);
            Assert.IsFalse(File.Exists(tempFile), "Cleanup failed: File should have been removed.");

            #endregion // AppendText() to Filestream
        }