BinaryWrite与WriteFile

mhe*_*xon 5 asp.net

我应该使用什么来将文件写入响应?我认为有两种不同的选择.选项一是将文件读入流中,然后将字节写入浏览器

Response.BinaryWrite(new bytes[5])
Run Code Online (Sandbox Code Playgroud)

下一个选项是直接使用Response.WriteFile从文件系统中写入文件.这两种方法有什么优点/缺点?

编辑:纠正错别字

Chr*_*ari 5

如果你在磁盘上有文件并至少使用asp.net 2.0,则首选Response.TransmitFile.

Response.WriteFile将整个文件读入内存,然后将文件写入响应.TransmitFile "将指定的文件直接写入HTTP响应输出流,而不在内存中缓冲它."


Kel*_*tex 4

另一个考虑因素是这是一个一次性写入的文件还是频繁写入的文件。如果您经常写入此文件,那么您可能需要缓存它,这样Response.BinaryWrite最有意义。

如果你有它在内存中,我不会将它写入文件系统并使用Response.WriteFile.