2010-09-28 39 views
12

Tôi có đối tượng chuỗi. Tôi cần truyền dữ liệu này cho một đối tượng kiểu XYZ khác. Nhưng đối tượng kiểu XYZ này chỉ lấy System.IO.Stream. Vì vậy, làm thế nào để chuyển đổi dữ liệu chuỗi thành một dòng để đối tượng của loại XYZ có thể sử dụng dữ liệu chuỗi này?Cách lấy System.IO.Stream từ đối tượng String

Trả lời

26

Bạn sẽ phải chọn mã hóa văn bản để sử dụng để dịch chuỗi thành một mảng byte, sau đó sử dụng MemoryStream để gọi hàm của bạn. Ví dụ:

using(System.IO.MemoryStream ms = new System.IO.MemoryStream(
    System.Text.Encoding.UTF16.GetBytes(yourString))) 
{ 
    XYZ(ms); 
} 

Bạn có thể thay đổi UTF16 thành bất kỳ mã hóa nào bạn muốn sử dụng để chuyển chuỗi.

+0

Nó đang làm việc, cảm ơn. – mohang

+0

thêm dấu ngoặc đơn bên phải bị thiếu ở hàng 2. Tôi không thể chỉnh sửa, vì chỉnh sửa cần phải thay đổi nhiều hơn 6 ký tự ... – cudahead

+0

@cudahead: Cảm ơn, đã hoàn thành. –

1

Giả sử bạn muốn dòng của chuỗi mã hóa trong UTF8:

System.IO.MemoryStream mStream = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes("the string")); 

Tùy thuộc vào những gì bạn thực sự muốn làm, bạn có thể được phục vụ tốt hơn bằng cách sử dụng lớp StringReader. Nó không phải là một IO.Stream, nhưng nó làm cho việc đọc văn bản theo định hướng dễ dàng của một chuỗi.

1

Mã này tải văn bản định dạng (rtf) vào RichTextBox

TextRange tr = new TextRange(RichTextBox1.Document.ContentStart,RichTextBox1.Document.ContentEnd); 

string s = myStringData; //myStringData is a string in some format - rtf, xml, etc.. 
MemoryStream ms = new MemoryStream(s); 
tr.Load(ms, DataFormats.Rtf); 
Các vấn đề liên quan