Как отказаться от создания FileStream каждый раз, когда я хочу сохранить файл? - PullRequest
1 голос
/ 20 июля 2011

У меня есть приложение, которое я получаю поток каждый раз, чтобы сохранить его, поэтому я хочу создать глобальный **FileStream** вместо того, чтобы создавать каждый раз, когда я получаю файл. Есть ли способ сделать это? (Есть ли альтернатива FileStream) может это сделать? потому что у меня уже есть большой объект (LO) в моем приложении, что повлияло на производительность CLR. P.S: входящие потоки будут сохранены в разных файлах (разные имена файлов) UPDATE: Я уже создал его, используя фразу, но на GC.Collect влияет LO, созданный в моем приложении

Ответы [ 3 ]

1 голос
/ 20 июля 2011

Имея в виду то, что вы написали: «входящие потоки будут сохраняться в разных файлах», я настоятельно рекомендую этого не делать.Просто создайте новый FileStream для каждого файла и закройте, как только вы закончите, так быстро, как сможете.

С уважением.

1 голос
/ 20 июля 2011

Если потоки нужно сохранять в разные файлы, я не думаю, что есть способ уйти от создания нового потока каждый раз.

0 голосов
/ 20 июля 2011

Вы пробовали System.IO.File.WriteAllBytes?

Объект FileStream не будет очень большим в памяти, я не думаю.Когда он сбрасывается, содержимое записывается в файл.

Чтобы не касаться кучи больших объектов, вы можете использовать List<byte[]> и разбивать байты на заранее определенные размеры.

...