IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Communiquer avec le port USB


Sujet :

avec Java

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Points : 80
    Points
    80
    Par défaut Communiquer avec le port USB
    Bonjour,
    Est-il possible d'envoyer des fichiers sur une clé USB usb en java, par le biais d'un stream ?
    Merci d'avance

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    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

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 57
    Points : 76
    Points
    76
    Par défaut
    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

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Points : 80
    Points
    80
    Par défaut
    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 ?

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Points : 80
    Points
    80
    Par défaut
    J'aurais bien vu un outputstream *

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    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

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Points : 80
    Points
    80
    Par défaut
    Je ne me vexe pas (je suis un noob). Est ce que tu peux etre un peu plus precis par contre stp ?
    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);
     
        }
    }
    Voici mon code, à l'éxécution, un fichier rempli de ###

  8. #8
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    Citation Envoyé par neperien Voir le message
    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 ?
    Techniquement la clé USB est un dossier (c'est aussi le cas sous Ubuntu même si l'interface te le cache). Regarde bien la documentation du JFileChooser, il permet de sélectionner les dossiers

  9. #9
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    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

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par Uther Voir le message
    Techniquement la clé USB est un dossier (c'est aussi le cas sous Ubuntu même si l'interface te le cache). Regarde bien la documentation du JFileChooser, il permet de sélectionner les dossiers
    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 ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    J'ai rajouté cette ligne maintenant je selectionne directement un dossier

    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.

  11. #11
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    "Phylosophiquement" oui tout est fichier. Mais non tout n'est pas fichier ou sont les répertoires ? (et les liens symboliques etc)


    Regarde ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        destOut.write(b, nbrDeByteLus, nbrDeByteLus);
    http://docs.oracle.com/javase/1.4.2/...1;], int, int)

    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

  12. #12
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Points : 80
    Points
    80
    Par défaut
    Ah okay je comprend mieux du coup !

    Merci d'avoir trouvé l'erreur : tout fonctionne maintenant !

    A + et encore merci

Discussions similaires

  1. [AC-2003] Comment communiquer avec le port USB depuis access ?
    Par Expensive dans le forum IHM
    Réponses: 6
    Dernier message: 25/01/2013, 06h38
  2. [Débutant] communiquer avec le port USB en VB.net
    Par belakhdarbts10 dans le forum VB.NET
    Réponses: 1
    Dernier message: 10/12/2011, 18h04
  3. Communiquer avec le port USB
    Par MrMust dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 09/11/2009, 12h43
  4. Réponses: 5
    Dernier message: 25/09/2009, 16h16
  5. [Système] Comment communiquer avec un port serie ou usb en php?
    Par thenightmare1985 dans le forum Langage
    Réponses: 3
    Dernier message: 05/12/2006, 13h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo