非常簡單的場景。我有一個Web服務接收一個字節數組,該字節數組將被保存爲磁盤上的特定文件類型。什麼是在C#中最有效的方法?在C#中,將字節數組保存爲磁盤上的文件的最有效方法是什麼?
回答
System.IO.File.WriteAllBytes(path, data)
應該沒問題。
不確定在這種情況下「高效」是什麼意思,但我會用System.IO.File.WriteAllBytes(string path, byte[] bytes) - 在LOC方面肯定有效。
也許System.IO.BinaryWriter和BinaryReader類會有所幫助。
http://msdn.microsoft.com/en-us/library/system.io.binarywriter.aspx
「以二進制流寫入原始類型,並支持在一個特定的編碼寫入字符串」。
http://msdn.microsoft.com/en-us/library/system.io.binaryreader.aspx
「讀取原始數據類型爲在特定的編碼的二進制值。」
有源代碼的任何真實示例? – Kiquenet 2010-12-29 16:08:14
我有一個類似的問題展開反傾銷調查300 MB字節數組到磁盤文件...
我用的StreamWriter,我花了一個很好的30分鐘到轉儲文件。
使用FilePut花了我3到4分鐘,當我用BinaryWriter時,文件在50-60秒內被轉儲。
如果您使用BinaryWriter,您將獲得更好的性能。
實際上,最有效的方式是流式傳輸數據並在收到數據時進行寫入。 WCF支持流媒體,因此這可能是您想要查看的內容。如果你用大文件做這件事,這一點尤其重要,因爲你幾乎肯定不希望服務器和客戶端上的內存中的文件內容。
這是一個沒人提及的重要細節,但是正如你指出WriteAllBytes並不是Memory的最有效方式,因爲它消耗了大量的內存。在可能的情況下儘快寫入它肯定會更好,我甚至可以通過使用帶有較小緩衝區的StreamWriter進行更好的分配。 – ForceMagic 2017-07-11 13:07:24
而且WriteAllBytes只是執行
using (FileStream stream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Read))
{
stream.Write(bytes, 0, bytes.Length);
}
的BinaryWriter具有誤導性的名稱,它是用來編寫元爲一個字節表示,而不是寫二進制數據。它的所有Write(byte [])方法都會對其使用的流(在本例中爲FileStream)執行Write()。
- 1. 在C中合併字節數組的最有效方法是什麼?
- 2. PHP將png文件保存爲0字節到磁盤
- 3. 在磁盤上存儲Python字典的有效方法?
- 4. 在Java中將對象存儲在磁盤上的最佳方式是什麼?
- 5. 使用python處理大量磁盤數據的最有效方法是什麼?
- 6. 將文件保存在磁盤中
- 7. 將數據寫入文件的最有效方法是什麼?
- 8. c - 將char *數組轉換爲int和float的最有效方法是什麼?
- 9. 將C++結構體編組爲C#的最有效方法是什麼?
- 10. Python:如何有效地將2d numpy數組保存到磁盤?
- 11. 在Java中輸入數組的最有效方法是什麼?
- 12. 什麼是在Javascript中反轉數組的最有效方法?
- 13. Carrierwave不保存磁盤上的文件
- 14. 爲什麼文件中的數組的二進制保存有效? [C++]
- 15. 爲什麼內存沒有在C#在磁盤上寫入文件後釋放
- 16. 在磁盤上保存文件
- 17. 將上傳的文件保存在磁盤上,ubuntu路徑
- 18. 什麼是在MySQL列中存儲整數數組的最有效方法?
- 19. 什麼是可以存儲在使用inode和磁盤塊的磁盤上的最大文件大小
- 20. 將字節數組轉換爲文件而不將文件寫入磁盤
- 21. 將數據保存到文件的最佳方式是什麼?
- 22. 在c#中將ushort轉換爲字節的最快方法是什麼?
- 23. 在PHP中組合這個數組數組的最有效方法是什麼?
- 24. 在c#上保存Excell文件數據的最佳做法是什麼?
- 25. 在C#.NET中保存cookie的最佳方法是什麼?
- 26. 比較存儲在字節數組中的雙精度的最有效方法?
- 27. 將xlsx文件保存到Sidekiq中的磁盤作爲背景
- 28. 爲Delphi的UnicodeString獲取UTF-16LE字節的最有效方法是什麼?
- 29. UWP將zip文件保存到磁盤
- 30. 在html上保存短數組的最有效和安全的方法是什麼?
+1爲一個全面的例子 - thx。 – barrypicker 2014-09-15 23:10:09