Rechercher : dans
Par :

[java] lire un flux & mettre dans un fichier

Dernière réponse le 27 avr 2005 à 14:18:39 karine, le 26 avr 2005 à 16:37:01 
 Signaler ce message aux modérateurs

Bonjour,

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

Comment je peux faire ça en java ?

Merci beaucoup.

Meilleures réponses pour « [java] lire un flux & mettre dans un fichier » dans :
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...
Lire un fichier en .rbs VoirOn peut rencontrer parfois des fichiers en .rbs, issus d'un enregistrement ou un autre. La solution la plus simple pour lire ces fichiers est tout bêtement de remplacer l'extension .rbs par .mp3 Si vous ne voyez pas l'extension du fichier, faites...

1

maily, le 26 avr 2005 à 16:41:57
Répondre à maily

2

karine, le 26 avr 2005 à 16:45:33

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

Répondre à karine

3

karine, le 26 avr 2005 à 16:51:24

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 !!

Répondre à karine

5

maily, le 26 avr 2005 à 16:52:51

Texte? quel genre de texte? String?

String maChaine=new String(monTableauDOctets); Maily,
Plus ça rate, et plus ça a de chance que ça marche.

Répondre à maily

4

Luffy =), le 26 avr 2005 à 16:52:14

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 opopop :-P

Répondre à Luffy =)

6

karine, le 26 avr 2005 à 16:58:46

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.

Répondre à karine

7

Luffy =), le 26 avr 2005 à 17:04:24

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 =) opopop :-P

Répondre à Luffy =)

8

karine, le 26 avr 2005 à 17:09:20

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.

Répondre à karine

9

Luffy =), le 26 avr 2005 à 17:11:20

???
ben c'est quoi ? de l'hexa ? dsl... comprends po.... opopop :-P

Répondre à Luffy =)

10

karine, le 26 avr 2005 à 17:15:35

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();

Répondre à karine

11

kij_82, le 26 avr 2005 à 18:54:50

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.

++ ~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~

Répondre à kij_82

12

karine, le 27 avr 2005 à 10:16:22

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 !!

Répondre à karine

13

karine, le 27 avr 2005 à 10:33:00

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 ;-)

Répondre à karine

14

Luffy =), le 27 avr 2005 à 10:49:24

Toutes mes Félicitations =) opopop :-P

Répondre à Luffy =)

15

 kij_82, le 27 avr 2005 à 14:18:39

Comme quoi certains probleme viennent plus de la façon dont on les énonce... ~ iclic @ gauch,iclic,  iclic @ droate, iclic, iclic
             et ya pas de bôg môsieu !    ~

Répondre à kij_82
Collection CommentÇaMarche.net