Sauvegarder un stream [Résolu]

Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Dernière intervention
27 octobre 2012
- - Dernière réponse : Lutinore
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Dernière intervention
27 octobre 2012
- 2 déc. 2007 à 16:57
Salut, je suis surpris de ne pas trouver dans le framework une fonction pour enregistrer un stream dans un fichier.. Avant de poster le code suivant sur Codyx, je voulais savoir si vous voyez une autre méthode ?

private static void StreamToFile( Stream inputStream, string outputFile, FileMode fileMode )
{
    if ( inputStream == null )
        throw new ArgumentNullException( "inputStream" );


    if ( String.IsNullOrEmpty( outputFile ) )
        throw new ArgumentException( "Argument null or empty.", "outputFile" );


    using ( FileStream outputStream = new FileStream( outputFile, fileMode, FileAccess.Write ) )
    {
        int cnt = 0;
        const int LEN = 4096;
        byte[ ] buffer = new byte[ LEN ];


        while( ( cnt = inputStream.Read( buffer, 0, LEN ) ) != 0 )
            outputStream.Write( buffer, 0, cnt );
    }
}
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
168
Date d'inscription
jeudi 28 juin 2001
Dernière intervention
18 octobre 2008
6
3
Merci
Salut,
L'ennui avec un Stream, c'est qu'il peut très bien ne jamais finir (par exemple un flux d'une radio web). Dans ce cas, le copier dans un fichier peut poser des problèmes.

Si ton flux est un fichier, autant copier directement le fichier (System.IO.File.Copy).

Dans tous les autres cas, le code que tu proposes est une solution.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_niky
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
89
3
Merci
Salut,

Heu, pas mieux :-)
En tout cas l'absence de méthode dédiée à ce genre de tâche dans le formework ne me choque pas plus que ça, ça ne serait pas forcément très utilisé.
Après tout dans beaucoup de cas, notamment sur tout ce qui est *Writer, on spécifie/peut spécifier soit même le Stream sous-jacent, et du coup directement fournir le FileStream adéquat.
Sinon dans le cas particulier de MemoryStream, on a la méthode WriteTo, mais il est vrai que ce n'est pas dédié à l'écriture du fichier.

/*
coq
MVP Visual C#
CoqBlog
*/

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_coq
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Dernière intervention
27 octobre 2012
37
0
Merci
Merci pour vos réponses.. en fait la question s'est posée quand j'ai du sauvegarder le stream ( ConnectStream ) renvoyé par la methode HttpWebResponse.GetResponseStream( ) .
Commenter la réponse de Lutinore

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.