Flux de donnée de type Reader

Flux de donnée de type Reader - Java - Programmation

Marsh Posté le 12-09-2003 à 13:48:07    

Salut, j'arrive à créer un flux à partir d'un fichier avec l'instruction : Reader sourceReader=new FileReader(sourceFile);
Mais maintenant je voudrais faire l'inverse avec un truc du style :
File fi = new File(sourceReader);
 
Quelqu'un à t'il une idée

Reply

Marsh Posté le 12-09-2003 à 13:48:07   

Reply

Marsh Posté le 12-09-2003 à 14:08:54    

ecrire dans ton fichier?
 
avec un Writer ça ira ptet mieux :D


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 12-09-2003 à 14:12:05    

Oui ce serait mieux, mais comment créer un Writer depuis un Reader ?

Reply

Marsh Posté le 12-09-2003 à 14:15:13    

:heink: Euh... avec un Reader, t'as pas tes données, hein ! T'as juste un accès à tes données, nuance.
Donc ce qu'il faut faire, c'est lire tes données avec ton Reader et les stocker dans un objet comme un tableau de char ou une String. A partir de là, tu chopes un FileWriter et tu fais write() de tes données.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 12-09-2003 à 14:26:09    

J'ai essayé ça donc voici mon code :
 
FileWriter fileWriter =new FileWriter(chemin);
int car;
String donnees="";
car = sourceSXW.read();
while(car != -1){
  donnees = donnees + car;
  car = sourceSXW.read();
}
fileWriter.write(donnees);
 
Mais dans mon fichier, ben je n'ai que des codes, et ce que je souhaite récupérer (pour l'instant), c'est en fait une copie du fichier qui m'a permis de faire mon Reader de départ.
 

Reply

Marsh Posté le 12-09-2003 à 14:28:52    

Juste pour savoir, ton fichier y a des données binaires ou des caractères, dedans ?
Passke FileReader et FileWriter sont des classes pour lire des fichiers texte. Comme le dit la doc de FileReader :

Citation :

Convenience class for reading character files.


Pour lire/écrire des fichiers binaires, c'est FileInputStream et FileOutputStream.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 12-09-2003 à 14:29:10    

pour copier
 

Citation :


**
     * Writes the specified content to the specified file.
     * @param content           content of the file
     * @param destinationFile   destination of the file
     * @throws java.io.IOException      if an error occurs while copying
     */
    public static void writeContent2File(String content, File destinationFile) throws IOException {
        StringReader in = null;
        BufferedWriter out = null;
 
        try {
            in = new StringReader(content);
            out = new BufferedWriter(new FileWriter(destinationFile));
            char[] buff = new char[BUFFER_SIZE];
            int cr = -1;
            while ((cr = in.read(buff, 0, buff.length)) != -1) {
                out.write(buff, 0, cr);
            }
        } finally {
            if (in != null) in.close();
            if (out != null) out.close();
        }
    }


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 12-09-2003 à 14:31:14    

Ce serait bien ça mon problème, il s'agit d'un fichier openoffice donc mon truc : Reader sourceReader=new FileReader(sourceFile); n'est peut etre pas adapter alors.

Reply

Marsh Posté le 12-09-2003 à 14:33:52    

Vala, faut utiliser FileInputStream et FileOutputStream. Ca sera la même chose que ce que tu as écrit mais avec des tableaux de byte au lieu de char.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 12-09-2003 à 14:36:57    

et darklord à repondu à coté de la plaque [:dawa]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 12-09-2003 à 14:36:57   

Reply

Marsh Posté le 12-09-2003 à 14:44:10    

the real moins moins a écrit :

et darklord à repondu à coté de la plaque [:dawa]


Comme d'hab' [:spamafote]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 12-09-2003 à 14:50:41    

Taiche a écrit :


Comme d'hab' [:spamafote]


 
c pa gentil, ça partait d'1 bon sentiment. lol
en tout cas merci à vous, je vais essayer.

Reply

Marsh Posté le 12-09-2003 à 14:59:21    

the real moins moins a écrit :

et darklord à repondu à coté de la plaque [:dawa]


 
bande de pédés :o  
c'est un exemple de copie de fichier. Qu'est ce que j'en sais qu'il copie du binaire moi hein :o


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 12-09-2003 à 15:30:31    

DarkLord a écrit :


c'est un exemple de copie de fichier. Qu'est ce que j'en sais qu'il copie du binaire moi hein :o

ben si t'avais lu t'aurais vu qu'il avait capté comment utiliser son writer hein [:kiki]
 
 
et s'il te plait si tu veux taquiner les gens, utilise "paidai"; si tu veux montrer que tu es homophobe, continue à l'écrire comme ça :jap:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 12-09-2003 à 15:32:33    

Voilà une méthode utilitaire bien pratique (que je verrai bien dans un java.io.Utils soit dit en passant) et la façon de l'utiliser dans le cas de fichiers.
 

Code :
  1. public static void transfertData(InputStream in, OutputStream out, int bufferSize) throws IOException {
  2.  byte[] buffer = new byte[bufferSize];
  3.  int nbRead;
  4.  while ((nbRead = in.read(buffer)) != -1) {
  5.   out.write(buffer, 0, nbRead);
  6.  }
  7. }
  8. ...
  9. InputStream in = new FileInputStream(tonFichierSource);
  10. OutputStream out = new FileOutputStream(tonFichierDestination);
  11. transfertData(in, out, 1024);
  12. in.close();
  13. out.close();


Message édité par benou le 12-09-2003 à 15:35:54

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 12-09-2003 à 15:32:39    

the real moins moins a écrit :

ben si t'avais lu t'aurais vu qu'il avait capté comment utiliser son writer hein [:kiki]


 

Citation :


Mais dans mon fichier, ben je n'ai que des codes, et ce que je souhaite récupérer (pour l'instant), c'est en fait une copie du fichier qui m'a permis de faire mon Reader de départ.


 
 :heink:  
 

Citation :


et s'il te plait si tu veux taquiner les gens, utilise "paidai"; si tu veux montrer que tu es homophobe, continue à l'écrire comme ça :jap:


 
 :sleep:  


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 12-09-2003 à 15:34:28    


Bon, c'est fini les gamins :o


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 12-09-2003 à 15:35:31    

DarkLord a écrit :


 

Citation :


Mais dans mon fichier, ben je n'ai que des codes, et ce que je souhaite récupérer (pour l'instant), c'est en fait une copie du fichier qui m'a permis de faire mon Reader de départ.


 
 :heink:  
 

ben ouais et ton code ne copie pas du binaire non plus :p
 
 
et pq vous pondez tous du code comme ça au lieu de comprendre et expliquer?  :sleep:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 12-09-2003 à 15:36:58    

the real moins moins a écrit :

et pq vous pondez tous du code comme ça au lieu de comprendre et expliquer?  :sleep:  


c'est ce que je me suis dit donc j'ai édité. Avant même de voir ta remarque...
 
Puis bon, dans ce cas, je crois que le code parle de lui même non ??
 
et si tu veux commenter, libre à toi :jap:


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 12-09-2003 à 15:37:29    

benou a écrit :


c'est ce que je me suis dit donc j'ai édité. Avant même de voir ta remarque...
 
Puis bon, dans ce cas, je crois que le code parle de lui même non ??
 
et si tu veux commenter, libre à toi :jap:

:jap:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 12-09-2003 à 15:38:27    

enfin bon, le point de l'histoire, c'est qu'il fallait utiliser les streams pour lire/ecrire du binaire, et les reader/writer
 
pour qui le bon point? :whistle:
(taiche? :))


Message édité par the real moins moins le 12-09-2003 à 15:38:51

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 12-09-2003 à 15:38:56    

the real moins moins a écrit :

ben ouais et ton code ne copie pas du binaire non plus :p
 
 
et pq vous pondez tous du code comme ça au lieu de comprendre et expliquer?  :sleep:  


 
t'as pas encore compris que j'ai posté ce code là tout au début pour lui montrer comment utiliser un Writer?
 
voir les 3 premiers posts. J'ai répondu à partir de ce moment là et le temps de retrouver le bout de code dans mes sources on est tombés sur le problème de binaire/texte (qui n'en est pas un finalement la procédure est la même finalement)
 
Donc critique ok, mais critique tout ce qui se passe :sleep:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 12-09-2003 à 15:43:49    

ben t'etais grillé c'est tout :na:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed