Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Stream объект

976
06 мая 2009 года
mikhalych
198 / / 04.01.2009
Возможно ли содержимое файла вычитать в объект Stream (StreamReader)

Например скажем есть файл "D:\my_photo.jpg" Мне надо всё содержимое файла вычитать именно в объект Stream (а ни в какой нибудь binary array) Буду рад за помощь если можно напишите кусочек кода или оставьте ссылку.
:)
5
06 мая 2009 года
hardcase
4.5K / / 09.08.2005
Цитата: mikhalych
Возможно ли содержимое файла вычитать в объект Stream (StreamReader)

Например скажем есть файл "D:\my_photo.jpg" Мне надо всё содержимое файла вычитать именно в объект Stream (а ни в какой нибудь binary array) Буду рад за помощь если можно напишите кусочек кода или оставьте ссылку.
:)


 
Код:
using(FileStream stream = new FileStream(@"D:\my_photo.jpg")) {
}
976
06 мая 2009 года
mikhalych
198 / / 04.01.2009
теперь вопрос на добавку уважаемый HardCase

Является ли твой объект stream ссылкой на файл "my_photo.jpg" или это уже объект содержащий контент файла ?

Спасибо . :)
5
06 мая 2009 года
hardcase
4.5K / / 09.08.2005
Цитата: mikhalych
теперь вопрос на добавку уважаемый HardCase

Является ли твой объект stream ссылкой на файл "my_photo.jpg" или это уже объект содержащий контент файла ?

Спасибо . :)


Этот объект содержить хэндл на файл. Чтение из него будет происходить последовательными вызовами Win32 API ReadFile.

Для закачки содержимого файла в память можно воспользоваться классом MemoryStream, например вот так:

Код:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace ConsoleApplication7 {
    class Program {

        public static MemoryStream LoadFile(string path) {
            using (FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.None)) {
                byte[] buffer = new byte[4096];
                int bytes_read = 0;
                MemoryStream result_stream = new MemoryStream((int)stream.Length);
                while ((bytes_read = stream.Read(buffer, 0, buffer.Length)) > 0)
                    result_stream.Write(buffer, 0, bytes_read);
                result_stream.Seek(0, SeekOrigin.Begin);
                return result_stream;
            }
        }

        static void Main(string[] args) {
            using (MemoryStream stream = LoadFile(@"myfile.txt")) {

            }
        }
    }
}
976
06 мая 2009 года
mikhalych
198 / / 04.01.2009
Спасибо Хардкэйс
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог