Brauchen Sie Hilfe Verständnis Stream.Read()

Ich bin ein wenig verwirrt, als Sie die Schritte des Lesens einer Datei in den buffer schrittweise.

aus der MSDN docs

public abstract int Read(
    byte[] buffer,
    int offset,
    int count
)

Quelle von C# - Beispiele

FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
try
{
    int length = (int)fileStream.Length;  //get file length
    buffer = new byte[length];            //create buffer
    int count;                            //actual number of bytes read
    int sum = 0;                          //total number of bytes read

    //read until Read method returns 0 (end of the stream has been reached)
    while ((count = fileStream.Read(buffer, sum, length - sum)) > 0)
        sum += count;  //sum is a buffer offset for next reading

kann ich sagen, dass die Linie fileStream.Read(buffer, sum, length - sum) liest sich wie "Lesen fileStream aus sum (offset) zu length - sum (total bytes zu Lesen) in buffer". OK also am Anfang, wenn sum = 0, I effektiv Lesen Sie die gesamte fileStream in Puffer 1 kurz, aber ich denke, dies ist nicht der Fall. Vielleicht Read() liest, was es möglicherweise können in den buffer? kehrt dann zurück, so dass Sie Read() es wieder? Ich bin ein wenig verwirrt.

InformationsquelleAutor Jiew Meng | 2010-10-19
Schreibe einen Kommentar