是否可以從字節數組創建文件並將其作爲文件直接發送到流而不在磁盤上創建該文件?如何從字節數組創建文件並將其作爲文件發送到流而不在磁盤上創建此文件?
回答
有一個MemoryStream類將byteArray作爲參數。你不需要寫一個文件。
Stream stream = new MemoryStream(byteArray);
或者,您可以Write
到現有MemoryStream
:
memStream.Write(byteArray, 0 , byteArray.Length);
你的問題不是很清楚。您正在詢問「創建文件」,但您卻說「沒有在磁盤上創建此文件」。但是有可能是由「一個字節數組創建一個文件」:
File.WriteAllBytes(path, bytes);
其中path是文件創建和字節是字節[]寫 - 這僅僅是那些衆多方式之一。
或者「發送到流而不在磁盤上創建文件」。即:寫入MemoryStream:
var ms = new MemoryStream(bytes);
恐怕你的問題需要更具體的你想要做什麼。
編輯:加密樣品:
private static byte[] Crypt
(byte[] data, byte[] key, byte[] iv, ICryptoTransform cryptor)
{
MemoryStream m = new MemoryStream();
using(Stream c = new CryptoStream(m, cryptor, CryptoStreamMode.Write))
{
c.Write(data, 0, data.Length);
}
return m.ToArray();
}
public static byte[] Encrpyt(byte[] data, byte[] key, byte[] iv)
{
using(Aes algorithm = Aes.Create())
using(ICryptoTransform encryptor = algorithm.CreateEncryptor(key,iv))
{
return Crypt(data, key, iv, encryptor);
}
}
謝謝你的回覆我有一個文件我將這個文件發送給加密類秒。這個加密類返回byte []。我可以在這個數組的磁盤c:\ temp \ test.file上創建這個加密文件,然後將它流式傳輸到我想要的文件中。但我不想在磁盤上創建這個test.file,因爲如果我想加密1MB - 我需要磁盤上的2MB空間(我知道,我可以在流式傳輸之後從temp中刪除此文件),但如果我想要加密10GB文件 - 我需要臨時20GB的磁盤空間。這就是爲什麼我不想將它創建爲磁盤上的文件。謝謝。 – LeonidB
我仍然不明白你的意思,但無論如何增加了一個加密樣本。 –
非常感謝你的例子!你不明白什麼? – LeonidB
- 1. php創建文件並作爲附件發送而不實際創建文件
- 2. 創建文件夾並將文件複製到本地磁盤
- 3. 在全磁盤上創建文件
- 4. 將字節數組轉換爲文件而不將文件寫入磁盤
- 5. 從內存文件創建磁盤上的Zip文件
- 6. 從字節數組創建文件
- 7. 創建zip文件到字節數組
- 8. Azure創建數據磁盤並將文件複製到它
- 9. 如何發送新創建的Excel文件作爲響應而不將其保存到硬盤上?
- 10. Java servlet和IO:創建文件而不保存到磁盤並將其發送給用戶
- 11. 如何創建SQL合併發佈而不創建BCP文件
- 12. 如何在python上使用pdftk而不在磁盤上創建物理文件?
- 13. 獲取文件*句柄,而不實際創建磁盤上的文件
- 14. 將int數組從ec2 servlet發送到s3而不創建本地文件
- 15. 從字節數組創建文件對象時指定文件名(不創建物理文件)
- 16. 發送和創建文件
- 17. 創建+服務(通過HTTP).ZIP文件,而不寫入磁盤?
- 18. 創建JSON文件並保存到磁盤
- 19. 爲多個文件創建zip文件,然後將其上傳到文件夾
- 20. 如何將多個字節數組合併爲一個來創建文件
- 21. 從作爲字節數組獲取的docx文件中創建ZipFileSystem而不寫入文件
- 22. 如何在內容中創建一個java.io.File實例而不在磁盤上創建臨時文件?
- 23. 如何使用數據流組件解密OpenPGP文件而不將文件保存到磁盤?
- 24. 獲取文件作爲附件從字節數組發送
- 25. 如何從文件創建Zookeeper節點?
- 26. 在內存中創建FileStream而不是在磁盤上保存物理文件
- 27. 在Java中,如何從字符串創建文件而無需將其寫入磁盤?
- 28. 如何將文件上傳到Web服務器而不創建文件?
- 29. 如何將文件上傳到S3而不創建臨時本地文件
- 30. 從drawable創建文件與sendbird發送
可以輕鬆地發送一個字節數組的存儲器流。 – kevintjuh93
當你說「發送到流,你是什麼意思?它是在一個asp.net應用程序的上下文中,你想用戶下載它? –
請寫你的完整用例。流,然後whats next? – Yogi