11.7. Outputting a Platform-Independent EOL Character
Problem
Your application will run on more than one platform. Each platform uses a different end-of-line (EOL) character. You want your code to output the correct EOL character without having to write code to handle the EOL character specially for each platform.
Solution
The .NET Framework provides the
Environment.NewLine
constant, which represents a
newline on the given platform. This is the newline string used by all
of the framework-provided WriteLine
methods
internally (including Console
,
Debug
, and Trace
).
There are a few different scenarios when this could be useful:
Formatting a block of text with newlines embedded within it:
// 1) Remember to use Environment.NewLine on every block of text // we format that we want platform correct newlines inside of string line; line = String.Format("FirstLine {0} SecondLine {0} ThirdLine {0}", Environment.NewLine); // get a temp file to work with string file = Path.GetTempFileName( ); FileStream stream = File.Create(file); byte[] bytes = Encoding.Unicode.GetBytes(line); stream.Write(bytes,0,bytes.Length); // close the file stream.Close( ); // remove the file (good line to set a breakpoint to check out the file // we created) File.Delete(file);
You need to use a different newline character than the default one used by
StreamWriter
(which happens to beEnvironment.NewLine
). You can set the newline that aStreamWriter
will use once so that allWriteLine
s performed by theStreamWriter
use ...
Get C# Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.