2012-09-12 32 views
7

Tôi có một tệp văn bản dưới dạng một byte [].Làm thế nào để đọc tất cả văn bản từ tệp byte []?

Tôi không thể lưu tệp ở bất kỳ đâu.

Tôi muốn đọc tất cả các dòng/văn bản từ 'tệp' này.

Có ai có thể chỉ cho tôi đúng hướng về cách tôi có thể đọc tất cả văn bản từ một byte [] trong C# không?

Cảm ơn!

+1

bạn đã thử những gì cho đến nay? – VIRA

+1

Bạn đã thử byte [] fileC = File.ReadAllBytes (dialog.FileName); –

+0

@Todd Moses Tôi đã có tệp như một byte [], tôi đang cố đọc văn bản từ byte đó [] ngay bây giờ. Nó đang được trao cho tôi, và tôi không có một tập tin thực sự được lưu trên đĩa, và tôi không muốn phải lưu nó vào đĩa và sau đó đọc. – Kyle

Trả lời

19

tôi sẽ tạo ra một MemoryStream và nhanh chóng một StreamReader với điều đó, ví dụ:

var stream = new StreamReader(new MemoryStream(byteArray)); 

Sau đó nhận được văn bản một dòng tại một thời điểm với:

stream.readLine(); 

Hoặc đầy đủ các tập tin sử dụng:

stream.readToEnd(); 
+0

Nó hoạt động, Cảm ơn! – Kyle

+1

Không vấn đề gì, tôi phải tìm ra một lý do [siêu quan trọng] (http://codegolf.stackexchange.com/questions/88/obfuscated-fizzbuzz-golf) một lần. –

0

Một giải pháp khác có thể sử dụng Encoding:

Encoding.Default.GetString(byteArray); 

Nó tùy chọn có thể được chia để có được những dòng:

Encoding.Default.GetString(byteArray).Split('\n'); 

Bạn cũng có thể chọn một mã hóa đặc biệt như UTF-8 thay vì sử dụng Default.

Các vấn đề liên quan