oshai
oshai

Reputation: 15365

how to write this java code in c#

I have this java code, that I want to translate to c#:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos);
ps.printf("\n\n+++++ %s %s\n",Environment.UserName, new SimpleDateFormat("MM/dd/yyyy HH:mm:ss aa").format(new Date()));

Upvotes: 1

Views: 4814

Answers (3)

Lloyd
Lloyd

Reputation: 29668

MemoryStream mem = new MemoryStream();
StreamWriter writer = new StreamWriter(mem);

writer.WriteLine(String.Format("\n\n+++++ {0} {1}\n",Environment.UserName,DateTime.Now.ToString()));

Or something similar...

Upvotes: 3

Rup
Rup

Reputation: 34408

Something like:

  // You can use "using" blocks guarantee streams are disposed (like try/finally { boas.Close(); })
  using (var baos = new MemoryStream())
  {
    // Stream encodes as UTF-8 by default; specify other encodings in this constructor
    using (var ps = new StreamWriter(baos))
    {
      // Format string almost the same, but 'tt' for 'am/pm'
      // Could also use move formatting into
      //    DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss tt")
      // or ToLongDateString and ToLongTimeString for locale-defined formats
      ps.Write("\n\n+++++ {0} {1:MM/dd/yyyy HH:mm:ss tt}\n", Environment.UserName, DateTime.Now);

      // Need to close or flush the StreamWriter stream before the bytes will
      // appear in the MemoryStream
      ps.Close();
    }

    // Extract bytes from MemoryStream
    var bytes = baos.ToArray();
  }

Upvotes: 5

Robbie Tapping
Robbie Tapping

Reputation: 2556

 string strVal = String.Format("\n\n+++++ {0} {1}\n", System.Environment.UserName, String.Format(
"{0:MM/dd/yyyy}", DateTime.Now));

Console.Write(strVal);

Upvotes: 3

Related Questions