[java] lire un flux & mettre dans un fichier

Fermé
karine - 26 avril 2005 à 16:37
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 27 avril 2005 à 14:18
Bonjour,

je lis un flux d'octets et je voudrais le mettre dans un fichier.

Comment je peux faire ça en java ?

Merci beaucoup.
A voir également:

14 réponses

maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
26 avril 2005 à 16:41
1
Le premier lien je l'avais vu mais y a pas d'exemple, je comprends pas très bien .
Le deuxième lien, il est bien mais c'est des chaines de caracteres qui sont écrites dans le fichier et pas des octets.

A ce propos, comment je peux convertir des octets en chaine de caracteres ?

Merci
0
Excuses-moi, j'aurais du essayer avant de parler.
Les octets sont bien dans le fichier maintenant.
Mais j'aimerais savoir comment on peut convertir des octets en texte.

J'ai cru voir qu'il n'existe pas de fonction comme ça en java mais qu'il faut en faire une.

Est-ce que quelqu'un en a déjà fait une de ce genre ?
Ou bien quelqu'un a-t-il une idée de comment la faire ?

Merci !!
0
maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
26 avril 2005 à 16:52
texte? quel genre de texte? String?

String maChaine=new String(monTableauDOctets);
0
Luffy =) Messages postés 365 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 19 mai 2006 110
26 avril 2005 à 16:52
A ce propos, comment je peux convertir des octets en chaine de caracteres ?

ben une chaine de caractères, c'est des octets nan ?
ex : "opopop" = 0x6F 0x70 0x6F 0x70 0x6F 0x70
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Quand tu dis

String maChaine=new String(monTableauDOctets);

ben moi les octets sonts dans un fichier maintenant et pas dans un tableau.

Mais j'ai l'impression q'1 truc cloche dans mon prog car beaucoup de texte ne represente que quelques octets.

Je sais pas si c'est normal.

Je vais essayer vos propositions.
0
Luffy =) Messages postés 365 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 19 mai 2006 110
26 avril 2005 à 17:04
beaucoup de texte ne represente que quelques octets.

ben si tout va bien, on a un octet par lettre, soit 8 bits. enfin si c'est de l'ascii bien sur =)
0
Salut !

En fait je ne veux pas que 1512 devienne "1512" mais je veux savoir ce que ça veut dire en "français".

Je vous donne pour exemple ce que contient mon fichier :
1512
1054
5792
21844

Et j'aimerais savoir ce que ça veut dire.
0
Luffy =) Messages postés 365 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 19 mai 2006 110
26 avril 2005 à 17:11
???
ben c'est quoi ? de l'hexa ? dsl... comprends po....
0
Voilà mon code, si ça peut t'aider à comprendre.


InputStream entrant = socket.getInputStream();
BufferedReader entrant3 = new BufferedReader(new InputStreamReader(socket.getInputStream()));

byte [] buffer = new byte[65536];
int lus;
boolean fini2 = false;
		
		
PrintWriter ecrivain =  new PrintWriter(new BufferedWriter (new FileWriter("monFichier.txt")));
while ((lus = entrant.read(buffer)) != -1) {	
			
			ecrivain.println(lus);
			
			sout.write(buffer,0,lus);
			
			       		
		}
		
		ecrivain.close();
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
26 avril 2005 à 18:54
coucou !!

ouhou outpy g de nouveau internet !!

Ton petit prog la, il te sers juste à lire tout ce que contient un fichier, et à lécrire par tranche de 65536 octets.

++
0
J'ai réfléchi pendant la nuit, et j'ai trouvé une façon plus claire de dire ce que je voudrais faire.

D'abord le code :
PrintStream sout = new PrintStream(client.getOutputStream());
InputStream entrant = socket.getInputStream();
		
byte [] buffer = new byte[4096];
int lus;
		
while ((lus = entrant.read(buffer)) != -1) {	
			
			sout.write(buffer,0,lus);
			       		
		}


Je voudrais que tout ce qui s'écrit dans sout s'écrive dans un fichier. C'est tout !

Ca a l'air simple mais moi je me prends la tete dessus depuis hier.

Avis aux amateurs !!
0
Ayé j'ai REUSSI !!!

La nuit rend vraiment les idées plus claires.

Je donne la solution pour les prochain(e)s qui auront ce problème.
PrintStream sout = new PrintStream(client.getOutputStream());
InputStream entrant = socket.getInputStream();
	
byte [] buffer = new byte[4096];
int lus;
		
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("monFichier.txt"));
  
  
while ((lus = entrant.read(buffer)) != -1) {	
			
			
			sout.write(buffer,0,lus);
		
			bos.write(buffer, 0, lus);
			       		
		}
		bos.flush();
   		bos.close();


Bon ça a l'air facile comme ça mais pour moi c'était long à trouver ;-)
0
Luffy =) Messages postés 365 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 19 mai 2006 110
27 avril 2005 à 10:49
Toutes mes Félicitations =)
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
27 avril 2005 à 14:18
Comme quoi certains probleme viennent plus de la façon dont on les énonce...
0