IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Modification d'un InputStream


Sujet :

Java

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 39
    Par défaut Modification d'un InputStream
    Bonjour à tous,

    J'ai un soucis sur les InputStream. Je veux faire une fonction pour modifier le contenu d'un InputStream.

    La signature est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static void mixInputStream(InputStream in);
    Je transforme le stream en arraychar. Je mixe la chaine, pour je recréé un stream a partir de cette chaine. En suite je réassigne ce nouveau stream à in. Mais le problème, c'est une fois dans la fonction appelante le stream est vide.

    Je voudrais savoir si quelqu'un n'a pas une solution pour ce genre de problème.

    Merci !

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2012
    Messages
    3 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3 020
    Par défaut
    montre nous ton code, on te dira ce qui cloche

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 39
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    import java.io.BufferedReader;
    import java.io.ByteArrayInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
     
     
    public class Test {
    	public static void main(String args[]) throws IOException{
    		File f = new File(System.getProperty("user.dir"), "Test");
    		InputStream in = new FileInputStream(f);
     
    		// printStream(in);
    		mixInputStream(in);
    		printStream(in);
    	}
     
    	public static void mixInputStream(InputStream in) throws IOException{
    		InputStreamReader isr = new InputStreamReader(in);
    		BufferedReader br = new BufferedReader(isr);
    		StringBuilder sb = new StringBuilder();
    		String readLine;
     
    		while ((readLine = br.readLine()) != null){
    			sb.append(readLine);
    		}
    		char[] ac = sb.toString().toCharArray();
    		// mix ac arraychar
    		String s = new String(ac);
    		in = new ByteArrayInputStream(s.getBytes());
    	}
     
    	public static int printStream(InputStream in) throws IOException{		
    		int length = 0;
    		String readLine;
    		BufferedReader br = new BufferedReader(new InputStreamReader(in));
     
    		while (((readLine = br.readLine()) != null)) {
    			length += readLine.length();
    			System.out.println(readLine);
    		}
    		return length;
    	}
    }
    Le premier printStream en commentaire affiche quelque chose. Le deuxième n'affiche rien.

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Lorsque tu affectes une nouvelle valeur à un paramètre, cela n'impacte que le code de la méthode, et non pas la méthode appelante...


    Je n'ai pas compris l'intérêt de tout cela, mais il serait préférable d'englober l'InputStream original dans un nouveau flux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public static InputStream mixInputStream(InputStream in) throws IOException{
        return new MixInputStream(in);
    }

    a++

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 39
    Par défaut
    C'est un test, car je voudrait intégrer ce système à un constructeur, donc pas de return.

    Le but est de décorer le flux entrant.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Même problème => même solution.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Mister Jingles Voir le message
    Le but est de décorer le flux entrant.
    Et c'est exactement ce que fait adiguba avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new MixInputStream(in);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur lors de modification d'une table
    Par seb.49 dans le forum SQL
    Réponses: 11
    Dernier message: 13/01/2003, 17h16
  2. [VB6] modification de menu
    Par rikko23 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 27/11/2002, 21h30
  3. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/09/2002, 16h37
  4. Modification de l'évènement OnClick
    Par MrJéjé dans le forum C++Builder
    Réponses: 9
    Dernier message: 22/08/2002, 12h52
  5. Réponses: 11
    Dernier message: 23/07/2002, 14h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo