Как записать содержание одного потока в другой поток в .NET?

вы можете использовать команду git effort (из пакета git-extras), которая показывает статистику о количестве фиксаций на каждый файл (по фиксации и активных дней).

EDIT: git effort is just скрипт bash вы можете найти здесь и адаптироваться к вашим потребностям, если вам нужно что-то более специальное.

41
задан Thomas Danecker 25 September 2008 в 06:25
поделиться

6 ответов

Относительно идеального размера буфера:

"При использовании метода Read, более эффективно использовать буфер, который является тем же размером как внутренний буфер потока, где внутренний буфер установлен на желаемый размер блока, и всегда читать меньше, чем размер блока. Если размер внутреннего буфера был неуказанным, когда поток был создан, его размер по умолчанию составляет 4 килобайта (4 096 байтов)".

Любой потоковый процесс считывания будет использовать Read (символьный буфер [], международный индекс, количество), который является методом, к которому относится эта кавычка.

http://msdn.microsoft.com/en-us/library/9kstw824.aspx (Под "Комментариями").

16
ответ дан core 23 September 2019 в 15:04
поделиться

Я не уверен, можете ли Вы непосредственно передать один поток по каналу другому в.NET, но здесь являетесь методом, чтобы сделать это с промежуточным буфером байта. Размер буфера произволен. Самый эффективный размер будет зависеть главным образом от того, сколько данных Вы передаете.

static void CopyStream(Stream input, Stream output){
    byte[] buffer = new byte[0x1000];
    int read;
    while ((read = input.Read(buffer, 0, buffer.Length)) > 0) 
        output.Write(buffer, 0, read);
}
7
ответ дан Bill the Lizard 23 September 2019 в 15:04
поделиться

считанные данные в FileStream в универсальный Поток

будут, вероятно, иметь некоторые направления для входа

2
ответ дан Community 23 September 2019 в 15:04
поделиться

Я не знаю о более изящном пути, чем использование буфера.

, Но размер буфера может иметь значение. Помнить проблемы о Копии Файла Vista? Это - причина, (в основном) изменял размер буфера. Изменения объяснены в это сообщение в блоге . Можно узнать об основных факторах из того сообщения. Однако это только запрашивает копирование файла. В приложениях, вероятно, Вы делаете много копий памяти, так в этом случае, 4 КБ могли быть лучшим размером буфера, , как рекомендуется документацией.NET .

2
ответ дан KovBal 23 September 2019 в 15:04
поделиться

В .NET 4.0 мы наконец-то появился метод Stream.CopyTo ! Ура!

70
ответ дан 27 November 2019 в 00:20
поделиться

BufferedStream.CopyTo (поток)

5
ответ дан 27 November 2019 в 00:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: