How can I create a .csv file implicitly/automatically by using the correct method, add text to that file existing in memory and then convert to in memory data to a byte array?
string path = @"C:\test.txt";
File.WriteAllLines(path, GetLines());
byte[] bytes = System.IO.File.ReadAllBytes(path);
With that approach I create a file always (good), write into it (good) then close it (bad) then open the file again from a path and read it from the hard disc (bad)
How can I improve that?
UPDATE
One nearly good approach would be:
  using (var fs = new FileStream(@"C:\test.csv", FileMode.Create, FileAccess.ReadWrite))
            {
                using (var memoryStream = new MemoryStream())
                {
                    fs.CopyTo(memoryStream );
                    return memoryStream .ToArray();
                }
        }
but I am not able to write text into that filestream... just bytes...
UPDATE 2
 using (var fs = File.Create(@"C:\temp\test.csv"))
            {
                using (var sw = new StreamWriter(fs, Encoding.Default))
                {
                    using (var ms = new MemoryStream())
                    {
                        String message = "Message is the correct ääüö Pi(\u03a0), and Sigma (\u03a3).";
                        sw.Write(message);
                        sw.Flush();
                        fs.CopyTo(ms);
                        return ms.ToArray();
                    }
                }
            }
The string message is not persisted to the test.csv file. Anyone knows why?
 
     
     
    