Bonjour,
Est-il possible d'envoyer des fichiers sur une clé USB usb en java, par le biais d'un stream ?
Merci d'avance
Bonjour,
Est-il possible d'envoyer des fichiers sur une clé USB usb en java, par le biais d'un stream ?
Merci d'avance
Tout dépend de ce que tu appelles stream. Mais que cela soit une clé, un disque dur, le réseau ou autres ca ne change rien du tout ....
(Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Salut,
Regarde ceci: JFileChooser, avec cette classe tu pourras choisir l'emplacement de ta clé, et le récupérer pour enregistrer ton fichier dessus. Par contre, ça implique qu'il y ai un utilisateur (ça ne sera pas "automatisé").
En espérant que cela puisse t'aider
Merci pour le conseil du JFilechooser ! Je n'y avais pas pensé. Est ce que je peux considerer ma clé usb comme un file sous windows ? Pour stocker un fichier dans l'emplacement de la clé, sous ubuntu, je dois passer par du shell ?
Il me semble (semble vouloir te vexer) que tu mélanges un peu tout non?
(Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Je ne me vexe pas (je suis un noob). Est ce que tu peux etre un peu plus precis par contre stp ?
Voici mon code, à l'éxécution, un fichier rempli de ###
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 package communicationusb; import java.io.*; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JFileChooser; import javax.swing.JOptionPane; /** * * @author remi */ public final class USBport { public USBport(File acopier){ JOptionPane.showMessageDialog(null, "Merci de selectionner un fichier au hasard de votre clé usb"); JFileChooser chooser = new JFileChooser(); int rep = chooser.showOpenDialog(chooser); if(rep == JOptionPane.OK_OPTION){ try { copieFichier(acopier, chooser.getCurrentDirectory()); } catch (FileNotFoundException ex) { System.out.println(ex.getMessage()); JOptionPane.showMessageDialog(null, "Erreur lors de la copie","Erreur",JOptionPane.ERROR_MESSAGE); } catch (IOException ex) { System.out.println(ex.getMessage()); JOptionPane.showMessageDialog(null, "Erreur lors de la copie","Erreur",JOptionPane.ERROR_MESSAGE); } } } public void copieFichier(File source, File RepertoireDestination) throws FileNotFoundException, IOException{ //Inspiré de developpez.com if(!RepertoireDestination.isDirectory()) { System.out.println("Erreur;"); return; } String stri = source.toString(); System.out.println(stri); int beginIndex = stri.lastIndexOf("."); stri = stri.substring(beginIndex); File destination = File.createTempFile("tmp",stri, RepertoireDestination); FileInputStream sourceIn = new FileInputStream(source); FileOutputStream destOut = new FileOutputStream(destination); byte b [] = new byte[1024*512]; //Creation d'un tableau de bytes de 0.5M0 //Il sera utile pour lire par paquets de bytes int nbrDeByteLus; do{ nbrDeByteLus = sourceIn.read(b); //On compte le nbr de bytes lus if(nbrDeByteLus!=-1) //Si il est == -1 , c'est EOF destOut.write(b, nbrDeByteLus, nbrDeByteLus); }while(nbrDeByteLus!=-1); sourceIn.close(); destOut.close(); destination.renameTo(source); } }
Ha ben voila ca ressemble plus a ce qu'il te faut en effet
Maintenant qu'est-ce qui dans ce code ne te satisfait pas ?
(Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Ah, ba pourtant lors de mes cours de systeme d'exploitations on m'a repeté que sous unix "tout est fichier". J'ai du mal capté un truc à cette phrase, non ?
J'ai rajouté cette ligne maintenant je selectionne directement un dossier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
Le problème à l'éxècution c'est que mon dossier .odt est mal copié (quand je louvre il est rempli de #) et son nom n'est pas celui que j'aurai voulu.
"Phylosophiquement" oui tout est fichier. Mais non tout n'est pas fichier ou sont les répertoires ? (et les liens symboliques etc)
Regarde ici :
http://docs.oracle.com/javase/1.4.2/...1;], int, int)
Code : Sélectionner tout - Visualiser dans une fenêtre à part destOut.write(b, nbrDeByteLus, nbrDeByteLus);
Tu as pas le bon offset pour moi déja comme premier probleme.
(Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Ah okay je comprend mieux du coup !
Merci d'avoir trouvé l'erreur : tout fonctionne maintenant !
A + et encore merci
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager