Rechercher : dans
Par :

[java] sauvegarder flux et inputStream

Dernière réponse le 31 mai 2005 à 13:50:05 karine, le 26 mai 2005 à 14:25:12 
 Signaler ce message aux modérateurs

Bonjour,

j'ai besoin d'aide !
Les flux java vont me rendre folle!

Je vous raconte toute l'histoire.
J'ai une classe Interpreteur qui lit un flux InputStreamReader.

En même temps que je lis ce flux, je voudrais le sauvegarder dans quelque chose (là je sais pas quoi). Mais il faudrait ensuite que ce quelque chose soit transformable en InputStream ou en DataInputStream pour que mon autre classe puisse l'utiliser.

J'espère que j'ai été claire, et surtout que quelqu'un va pouvoir m'aider.

Je vous remercie tous et toutes d'avance !
(Ca fait du bien de raconter ses problèmes ;-) )

Meilleures réponses pour « [java] sauvegarder flux et inputStream » dans :
Entrées/sorties : Les flux en C++ VoirEntrées/sorties : les flux en C++ 1. Ouvrir un fichier en lecture 1.1 Ouverture du fichier "donnees.txt" en lecture 1.2 Lecture du contenu de "donnees.txt" 2. Ouvrir un fichier en écriture 2.1 Ouverture du fichier "donnees.txt" en...
[Outlook] Sauvegarder le carnet d'adresses (fichier wab) VoirSauvegarde du carnet d'adresse d'Outlook Méthode n°1 Pour sauvegarder le carnet d'adresses de Microsoft Outlook ou Microsoft Outlook Express, il est nécessaire dans un premier temps de localiser le dossier dans lequel il est situé. Le carnet...
Sauvegarde des paramètres de Mozilla Thunderbird VoirSauvegarde manuelle Pour sauvegarder le contenu du carnet d'adresses, les comptes de courrier, les paramètres des comptes ou les extensions installées, il suffit de sauvegarder le dossier suivant :C:\Documents and...
Télécharger Java Runtime Environment VoirJava Runtime Environment (JRE) installe la machine virtuelle Java, permettant de jouer en ligne, de discuter avec des personnes dans le monde entier, de calculer les intérêts de votre prêt immobilier ou de visualiser des images en 3D. Ces...
Télécharger SyncBack VoirSyncBack est un logiciel de synchronisation de répertoires. Il peut être utilisé: pour effectuer des backups de fichiers (copies de sauvegarde) pour synchroniser des répertoires entre ordinateurs. pour synchroniser des clés USB ou disques...
Java - Les types de données VoirLes primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et...
Java - Premier programme VoirPremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main...
J2EE - Java 2 Enterprise Edition VoirIntroduction au Java Framework Le «Java Framework» (Java 2 Platform) est composé de trois éditions, destinées à des usages différents : J2ME : Java 2 Micro Edition est prévu pour le développement d'applications embarquées, notamment sur des...

1

karine, le 26 mai 2005 à 15:30:02

Il n'y a personne qui s'y connait en flux java ?

En tout cas merci à la personne qui m'aidera.

Répondre à karine

2

shako95, le 26 mai 2005 à 15:47:11

Non je m'y connais pas.
De rien d'avoir répondu ^^

ps: ahhh l espoir qui nait en voyant 1 message de plus à son topic...

Répondre à shako95

3

karine, le 26 mai 2005 à 16:37:32

Comme on dit, c'est l'intention qui compte ;-D

Mais plus sérieusement, je suis un peu désespérée avec ce problème depuis une semaine.

Si quelqu'un a une petite idée, ça me ferait bien plaisir!

Répondre à karine

4

karine, le 30 mai 2005 à 09:43:39

Je fais remonter le topic, car je n'ai toujours pas trouvé de solution.

Et je m'en irai pas sans la solution! ;-D

MERCI !!

Répondre à karine

5

shako95, le 30 mai 2005 à 09:47:54

Laches une photo de toi et jte dirai la solution :D

nan jy connais rien en java.. jte plains, jdéteste quand on répond pas à mon message lol

En tout cas dés que tu verras mon pseudo, esperes pas que c est pour t aider!

Répondre à shako95

6

karine, le 30 mai 2005 à 09:52:23

Méfies-toi !

Je connais des mecs qui prennent des pseudo de filles espérant que ça attirera le "geek" :-D

Qui sait, si ça se trouve je m'appelle Roberto et je pèse 120 kg !

Sinon, je rappelle que ce topic n'est pas une blague !
Je cherche vraiment une solution ;-)

Répondre à karine

7

shako95, le 30 mai 2005 à 10:01:02

Lol je compte pas te draguer, mais javoue que ton pseudo serait roger jpasserai pas le temps en postant sur ton topic =)

Maintenant tu peux lacher l affaire, je l ai pourri ton topic mdr

Bonne chance !

Répondre à shako95

8

sam3000, le 30 mai 2005 à 10:01:22

Je ne suis pas programmeur Java (mais plutot VB), mais peut etre mon conseil pourra t'aider,
tu pourra créer une classe dérivée de InputStream (appelons la "InputOutputStream") à la quelle tu ajoute une méthode Write pour "ecrire" dedans (dans le buffer qui servira par la suite à la lecture), puis tu utilise cette classe à la place de tes InputStream, ainsi, quand tu as un résultat tu l'ecrit dans un "InputOutputStream" au lieu du "InputStream".
un site sur java, qui pourra peut etre t'aider:

http://www.kickjava.com/?http://www.kickjava.com/753.htm

bonne chance, dans la suite, chui toujours là si je peut t'aider,
sur ce, @* L'erreur est humaine mais un véritable désastre
ne peut être qu'informatique.

Répondre à sam3000

9

karine, le 30 mai 2005 à 10:27:39

Merci sam3000 !

Je vais essayer tout ça, je te tiens au courant.

A+

Répondre à karine

10

jebok, le 30 mai 2005 à 11:38:01

Et pourquoi tu n'écrirais pas ton flux dans un fichier "flux.txt" par exemple en faisant :

File destination = new File("flux.txt");
destination.createNewFile();
FileOutputStream destinationFile = new FileOutputStream(destination);
/** taille des segments de fichier lus = 0.5Mo */
		byte buffer[]=new byte[512*1024];
        int nbLecture;
        
        /** tant que le flux d'entrée contient des données */
        while( (nbLecture = in.read(buffer)) != -1 ) {
         	/** on écrit ces données dans le fichier de destination via 
         	 * le flux de sortie */
         	destinationFile.write(buffer, 0, nbLecture);
        }


in est ton flux entrant que tu veux sauvegarder.

Et lorsque tu as besoin de lire ce qui est dans le fichier, tu fais :
InputStreamReader ins = new InputStreamReader("flux.txt");

Mal nommer les choses, c'est ajouter aux malheurs du monde.
(Albert Camus)

Répondre à jebok

11

karine, le 30 mai 2005 à 11:43:04

Merci beaucoup jebok !

Ta solution m'as l'air pas mal du tout. C'est vrai que le fichier ça ralentit un peu mais si ça marche, c'est déjà ça !

Est-ce que tu sais comment je peux transformer le InputStreamReader en InputStream ? Car c'est ce que je veux en retour.

Répondre à karine

12

jebok, le 30 mai 2005 à 11:53:17

A la place de la derniere ligne InputStreamreader ins =...
tu n'as qu'à écrire ceci :

InputStream fluxFinal = new InputStream("flux.txt");


on peut transformer un InputStream en InputStreamReader mais pas l'inverse je crois.
De toute manière, InputStream est abstract contrairement à InputStreamReader Mal nommer les choses, c'est ajouter aux malheurs du monde.
(Albert Camus)

Répondre à jebok

13

jebok, le 30 mai 2005 à 12:11:16

En fait, InputStream ne possède pas de constructeur permettant d'introduire un argument.
Il faut donc écrire ceci :

FileInputStream fluxFinal = new FileInputStream("flux.txt");

et ensuite lorsque tu souhaites utiliser ton flux en tant que InputStream, il te suffit de le caster :

InputStream fluxx = (InputStream)fluxFinal;

En espérant t'avoir aidé,
jerome Mal nommer les choses, c'est ajouter aux malheurs du monde.
(Albert Camus)

Répondre à jebok

14

karine, le 30 mai 2005 à 14:18:52

Resalut jerome !

FileInputStream fw;
DataInputStream fromWebBin;

InputStream fluxx = (InputStream)fw;
	
fromWebBin = new DataInputStream(fluxx);


Je fais ça et ça a pas l'air de marcher, j'ai une erreur java.lang.NullPointerException quand je fais un readLine sur fromWebBin. Comme si il était vide.

Tu es sur qu'on peut caster en InputStream comme ça ?
Est-ce que tu vois d'où viens l'erreur?

merci!

Répondre à karine

15

karine, le 30 mai 2005 à 15:26:37

En fait c'était bon, j'avais oublié d'instancier fw.

Merci beaucoup jerome !!

Répondre à karine

16

 profiler_21, le 31 mai 2005 à 13:50:05

Eh beh miss karine je vois que ta du succes sur ccm y a meme des gens qui te drague balo.
donc pour repondre a ta question, ecrire sur un fichier voici les lignes de code qui te permetent de le fair:

ObjetOutputStream s=new ObjetOutputStream(new(FileOutputStream("karine.txt"));
s.writeObject("today");//ecrire une chaine de caract sur le fichier.
s.writeObject(new Date());//Date() peut etre un tablo, une classe......

Lire dans fichier:

ObjetInputStream s=new ObjetInputStream(new(FileInputStream("karine.txt"));
String chaine=(String) s.readObject();// il faut tjrs definir lobjet que tu li dans le fichier dans lexemple g di que ct un string.
Date date= (Date) s.readObject();


j espere que c ptite ligne te serviron a kelke chose.
ciao

Répondre à profiler_21