programing

FileStreamResult가 스트림을 닫습니까?

copysource 2023. 8. 23. 23:46
반응형

FileStreamResult가 스트림을 닫습니까?

제 질문은 이 질문과 유사합니다.asp.net 의 파일() mvc가 스트림을 닫습니까?

저는 C# MVC 4에 다음과 같은 내용을 가지고 있습니다.

FileStream fs = new FileStream(pathToFileOnDisk, FileMode.Open);
FileStreamResult fsResult = new FileStreamResult(fs, "Text");
return fsResult;

할 것이다fs에 의해 자동으로 닫힙니다.FileStreamResult감사합니다!

네. 그것은 사용합니다.using리소스가 폐기되도록 보장합니다.

다음은 의 내부 구현입니다.FileStreamResultWriteFile 메서드:

protected override void WriteFile(HttpResponseBase response)
{
    // grab chunks of data and write to the output stream
    Stream outputStream = response.OutputStream;
    using (FileStream)
    {
        byte[] buffer = new byte[BufferSize];

        while (true)
        {
            int bytesRead = FileStream.Read(buffer, 0, BufferSize);
            if (bytesRead == 0)
            {
                // no more data
                break;
            }

            outputStream.Write(buffer, 0, bytesRead);
        }
    }
}

언급URL : https://stackoverflow.com/questions/26275764/does-filestreamresult-close-stream

반응형