2009-04-26 5 views
0

Ich habe die folgenden Methoden:korrekte Terminologie für eine Datei in Bytes Streaming und zurück

public static byte[] ConvertFileToBytes(string filePath) 
    { 
     var fInfo = new FileInfo(filePath); 
     var numBytes = fInfo.Length; 
     var dLen = Convert.ToDouble(fInfo.Length/1000000); 

     var fStream = new FileStream(filePath, FileMode.Open, FileAccess.Read); 
     var br = new BinaryReader(fStream); 

     var data = br.ReadBytes((int)numBytes); 
     br.Close(); 

     fStream.Close(); 
     fStream.Dispose(); 

     return data; 
    } 

    public static void ConvertBytesToFile(byte[] file, string filePath) 
    { 
     var ms = new MemoryStream(file); 

     var fs = new FileStream(filePath, FileMode.Create); 

     ms.WriteTo(fs); 

     ms.Close(); 
     fs.Close(); 
     fs.Dispose(); 
    } 

Was ist der richtige, diese Methoden zu nennen? (weil Konvertieren XXX-YYY einfach nicht in einer Dienstprogramme Bibliothek schneidet)

Antwort

10
+0

... haha! Ich lerne einfach jeden Tag eine Menge neuer Dinge. Prost Kumpel! –

+0

Nicht versuchen, ein Idiot zu sein, aber ich habe es ein paar Mal gesehen. Diese Antwort beantwortet die eigentliche Frage nicht. Es ist jedoch ein guter Vorschlag. Die Frage ist über seine Methodensignaturen nicht Umsetzung. Wäre klar, dass SO diese etwas konsistent halten möchte. –

+0

@Deviant: Ich denke, dass es bedeutet, dass ich folge, dass die richtigen Namen "Lesen" und "Schreiben" sein sollten. Da es sich speziell um Dateien handelt, ist "(de) serialisieren" zu allgemein. Gleiches gilt für "Marshal", was meiner Meinung nach auch etwas andere Konnotationen hat. –

2

Die Begriffe sind in der Regel "serialize" verwendet und "deserialisieren" (oder manchmal "Marschall" und "Demarschall").

+0

Für mich bedeuten sowohl "serialize" als auch "marshal", dass Sie mit einer Art von Datenstruktur arbeiten, die eine spezielle Logik für die Konvertierung in Bytes benötigt - aber wir haben bereits Bytes, sie müssen nur in eine Datei geschrieben werden (Das ist nichts anderes als ein Haufen Bytes. –

0

Marshalling/Unmarshalling könnte der geeignete Begriff sein.

http://en.wikipedia.org/wiki/Marshalling_(computer_science)

+0

hmm, also was ist der Unterschied zwischen Marshalling und Serialisierung? –

+0

Marshalling wird traditionell verwendet, wenn es um XML geht, Serialisierung beim Umgang mit In-Memory-Datenstrukturen. Weder gilt das für die einfache Aufgabe, Bytes direkt in eine Datei zu schreiben. –

0

In C++ würden sie lesen und schreiben aufgerufen werden.

0

Die WriteAllBytes und ReadAllBytes sind ein guter Vorschlag, aber Ihre Frage zu beantworten ...

Save() eine gute Wahl für die Umbenennung von ConvertToFile() und Object.CreateFromFile() für die umgekehrte wäre.

Verwandte Themen