Wie kann ich eine .csv-Datei implizit/automatisch erstellen, indem Sie die richtige Methode verwenden, Text zu dieser Datei im Speicher hinzufügen und dann in Arbeitsspeicher konvertieren Daten zu einem Byte-Array?Erstellen und Schreiben in eine Textdatei inmemory und Konvertieren in Byte-Array auf einmal
string path = @"C:\test.txt";
File.WriteAllLines(path, GetLines());
byte[] bytes = System.IO.File.ReadAllBytes(path);
Mit diesem Ansatz, den ich immer eine Datei erstellen (gut), schreibt in sie (gut), dann schließen Sie es (sehr schlecht) und öffnen Sie dann die Datei erneut von einem Pfad und lesen Sie es von der Festplatte (sehr schlecht)
Wie kann ich das verbessern?
UPDATE
Ein fast guter Ansatz wäre:
using (var fs = new FileStream(@"C:\test.csv", FileMode.Create, FileAccess.ReadWrite))
{
using (var memoryStream = new MemoryStream())
{
fs.CopyTo(memoryStream);
return memoryStream .ToArray();
}
}
aber ich bin nicht in der Lage Text in das Filestream zu schreiben ... nur 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();
}
}
}
Die String-Nachricht wird nicht in der Datei test.csv beibehalten. Wer weiß warum?
wie geben Sie den Textwriter zum FileStream? Erstellen Sie einen FileStream, den Sie nicht weitergeben können. – HelloWorld
TextWriter akzeptiert einen Stream als Eingabe, so dass Sie FileStream direkt darauf verwenden können. – Xilmiki
Ich glaube, Sie haben meine ursprüngliche Frage falsch verstanden. Ich möchte nicht nur eine Textdatei erstellen ... bitte beachten Sie auch das Byte [] mit den gewünschten "Text" -Daten. – HelloWorld