Làm cách nào để chuyển đổi byte[]
mảng thành luồng trong C#?Làm cách nào để chuyển đổi byte [] thành luồng trong C#?
Trả lời
Cách dễ nhất để chuyển đổi mảng byte thành luồng là sử dụng lớp MemoryStream
:
Stream stream = new MemoryStream(byteArray);
Xin lưu ý rằng cách tạo luồng này có lẽ không lý tưởng: "Nhà xây dựng này không để lộ luồng cơ bản. GetBuffer ném UnauthorizedAccessException. " http://msdn.microsoft.com/en-us/library/e55f3s5k.aspx – noocyte
@noocyte cách lý tưởng là gì? – developerbmw
nhưng bạn vẫn có thể sử dụng 'stream.ToArray()' nếu bạn muốn mảng byte của bạn trở lại. –
Nhìn vào lớp MemoryStream
.
Bạn đang tìm kiếm MemoryStream.Write
method. Ví dụ, đoạn mã sau sẽ viết nội dung của một mảng byte[]
vào một dòng bộ nhớ:
byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream();
stream.Write(myByteArray, 0, myByteArray.Length);
Ngoài ra, bạn có thể create a new, không thay đổi kích thước MemoryStream
đối tượng dựa trên các mảng byte:
byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream(myByteArray);
Đây là câu trả lời hay nhất. Nó ngắn gọn và bao gồm tất cả các ứng dụng thực tế. Có một gotcha chỉ bằng cách sử dụng các mảng byte dựa trên constructor như được chỉ ra ở đây - dòng kết quả là không tái khá lớn. – Jduv
Cũng nhớ đặt lại luồng sau: stream.Seek (0, SeekOrigin.Begin); –
Xin lưu ý rằng tùy chọn đầu tiên 'MemoryStream.Write' tốn nhiều bộ nhớ hơn' MemoryStream mới (myByteArray) ' – Alex
Cách tiếp cận chung để ghi vào bất kỳ luồng nào (không chỉ MemoryStream
) là sử dụng BinaryWriter
:
static void Write(Stream s, Byte[] bytes)
{
using (var writer = new BinaryWriter(s))
{
writer.Write(bytes);
}
}
- 1. zlib từ C++ đến C# (Cách chuyển đổi byte [] thành luồng và luồng thành byte [])
- 2. Cách chuyển đổi luồng byte thành luồng gói trong C89 trên thiết bị nhúng
- 3. Làm cách nào để chuyển đổi bit thành byte?
- 4. Làm cách nào để cắt ngắn chuỗi trong khi chuyển đổi thành byte trong C#?
- 5. chuyển đổi byte thành chuỗi C#
- 6. C# Làm thế nào để tôi chuyển đổi System.Net.ConnectStream thành một byte [] (mảng)
- 7. Cách tốt nhất để chuyển đổi luồng (không biết chiều dài) thành mảng byte, trong .NET?
- 8. Làm thế nào để chuyển đổi byte [] thành InputStream?
- 9. Làm thế nào để chuyển đổi chuỗi Java thành byte []?
- 10. Làm thế nào để chuyển đổi chuỗi thành mảng byte?
- 11. Làm thế nào để chuyển đổi một byte thành bit?
- 12. Làm thế nào để chuyển đổi loại 'byte []' thành 'System.Data.Linq.Binary'
- 13. Go: làm thế nào để chuyển đổi struct thành [] byte?
- 14. Làm thế nào để chuyển đổi một mảng byte thành đôi trong C?
- 15. Cách chuyển đổi mảng byte thành NSString
- 16. Làm cách nào để chuyển đổi các byte 8 bit thành các ký tự 6 bit?
- 17. Làm thế nào để chuyển đổi một sbyte [] thành byte [] trong C#?
- 18. làm thế nào để chuyển đổi chuỗi thành byte [] trong C#
- 19. Làm thế nào để chuyển đổi mảng byte được mã hóa g729 thành .WAV trong C#?
- 20. Chuyển đổi một byte thành chuỗi nhị phân trong C#
- 21. Cách chuyển đổi NSString thành byte
- 22. Chuyển mảng byte thành chuỗi trong C#
- 23. Chuyển đổi int thành mảng byte trong C?
- 24. Chuyển đổi XDocument thành Luồng
- 25. iTextSharp - Cách chuyển đổi Tài liệu thành byte []
- 26. Chuyển đổi n-byte int thành byte trong python3
- 27. Chuyển đổi một luồng thành một FileStream trong C#
- 28. Chuyển đổi byte thành bit trong python
- 29. Chuyển đổi đối tượng thành mảng byte trong C#
- 30. Làm cách nào để chuyển đổi Perl thành C?
Loại luồng nào? Tại sao? –