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

Java ME Discussion :

Ecriture dans un fichier en J2ME


Sujet :

Java ME

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 103
    Points : 50
    Points
    50
    Par défaut Ecriture dans un fichier en J2ME
    Bonjour,
    j'essaye d'écrire dans un fichier texte grâce à un programme J2me, voila le programme que j'utilise:

    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
     //Ecriture dans un fichier
      private void ecriture(){
     
    	  System.getProperty("microedition.io.file.FileConnection.version");
     
    	  try 
          { System.out.println("test1");
            OutputConnection connection = (OutputConnection)    
            	Connector.open("file:///c:/test.txt", Connector.WRITE );
            System.out.println("test2");
            OutputStream out = connection.openOutputStream();
            System.out.println("test3");
            PrintStream output = new PrintStream( out );
            System.out.println("test4");
            output.println( "This is a test." );
            System.out.println("test5");
            out.close();
            System.out.println("test6");
            connection.close();
            System.out.println("écriture réussie");
            Alert alert = new Alert("Completed", "Data Written", null, null);
            alert.setTimeout(Alert.FOREVER);
            alert.setType(AlertType.ERROR);
            _display.setCurrent(alert);      
          }
          catch( ConnectionNotFoundException error )
           {System.out.println("fichier non trouvé");
             Alert alert = new Alert(
                 "Error", "Cannot access file.", null, null);
             alert.setTimeout(Alert.FOREVER);
             alert.setType(AlertType.ERROR);
             _display.setCurrent(alert);      
            }
            catch( IOException error )
            {System.out.println("fichier non trouvé2");
             Alert alert = new Alert("Error", error.toString(), null, null);
             alert.setTimeout(Alert.FOREVER);
             alert.setType(AlertType.ERROR);
             _display.setCurrent(alert);      
            }
     
     
      }
    j'obtiens l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.io.IOexception: Root is not accessible
    L'erreur, d'après moi, viendrait de la syntaxe du chemin d'accès au fichier mais je ne sais pas comment résoudre le problème. Auriez-vous une idée svp?
    merci d'avance.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2004
    Messages : 187
    Points : 239
    Points
    239
    Par défaut
    Je ne sais pas si tu es sur émulateur ou sur mobile mais :
    - sur émulateur le root est root...
    - sur mobile il est peu probable que tu ais le droit de lire ou écrire les fichiers à la racine c:

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 103
    Points : 50
    Points
    50
    Par défaut
    en fait je suis encore au stade de simulation sur pc, les tests sur mobile viendront après. J'ai enfin réussi à écrire dans mon fichier (placé dans root1) mais le simulateur me demande toujours une confirmation pour écrire dans le fichier. D'après ce que j'ai pu lire il faut que la MIDlet soit signée pour qu'il n'y ait plus de confirmation, comment puis-je faire?

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2004
    Messages : 187
    Points : 239
    Points
    239
    Par défaut
    La signature de l'application est un process qui coûte de l'argent. De plus, sur certains mobiles ça ne changera rien tu auras toujours cette demande de confirmation.
    Je pense que tu vas devoir faire avec...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 103
    Points : 50
    Points
    50
    Par défaut
    je ne peux donc pas créer de programme qui utilise l'écriture dans un fichier?

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2004
    Messages : 187
    Points : 239
    Points
    239
    Par défaut
    Bien sûr que si ! Mais par mesure de sécurité, la plateforme java demandera à l'utilisateur si il autorise cette action, c'est tout !

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 103
    Points : 50
    Points
    50
    Par défaut
    en fait sur mon emulateur le programme tourne (en autorisant l'écriture/lecture des fichiers) par contre sur mon PDA, ça ne marche même pas! J'ai comme erreur
    java.lang.SecurityException
    j'ai trifouillé dans le PDA, dans les options pour autoriser d'écrire et lire dans les fichiers du système mais sans succès.
    tu as une idée d'où ça pourrait venir?

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2004
    Messages : 187
    Points : 239
    Points
    239
    Par défaut
    Alors dans ce cas ça peut venir de l'endroit où tu essaies d'écrire. Ou alors ton mobile a une VM naze et effectivement ce ne serait pas possible... J'ose espérer que c'est la première solution.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 103
    Points : 50
    Points
    50
    Par défaut
    nan en fait c'est bon j'arrive à écrire dans le fichier avec le PDA.. par contre il demande une confirmation pour la lecture et pour l'écriture, c'est un peu lourd pour une utilisation fluide surtout que je dois écrire souvent dans le fichier.
    Ou alors la solution serait de stocker toutes mes données avec un RecordStore et seulement à la fin écrire dans le fichier. Est-ce que tu sais si un RecordStore a une capacité limitée?

  10. #10
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Il me semble que le RMS n'est limité que par la mémoire du téléphone.
    Cela étant dit, si tu peux stocker les infos temporairement dans le RMS, je vois pas pourquoi tu t'embêtes à les stocker dans un fichier

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 103
    Points : 50
    Points
    50
    Par défaut
    Je dois stocker des données sur fichier parceque mes données doivent être ensuite envoyer vers un PC pour être sauvegardées et traiter.

  12. #12
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Oki ceci explique cela

    Et donc ça marche ?
    Tu fais comment ?
    Ça m'intéresse

  13. #13
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 136
    Points : 104
    Points
    104
    Par défaut
    Bonjour,

    essaies la syntaxe suivante:

    "file:\test.txt"

    Bon courage

    @+

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 103
    Points : 50
    Points
    50
    Par défaut
    pour écrire dans un fichier de ma carte SD de mon PDA j'utilise le code suivant:
    //Ecriture dans un fichier
    private void ecriture(String message){


    System.getProperty("microedition.io.file.FileConnection.version");

    try
    { System.out.println("test1");
    FileConnection connection = (FileConnection)
    Connector.open("file:///SD Card/texte.cvs", Connector.READ_WRITE );

    //Connector.open("file:///root1/texte.cvs", Connector.READ_WRITE );
    OutputStream out = connection.openOutputStream(connection.fileSize());


    PrintStream output = new PrintStream( out );

    output.println( message);
    out.close();
    connection.close();

    }
    catch( ConnectionNotFoundException error )
    {System.out.println("fichier non trouvé");
    Alert alert = new Alert(
    "Error", "Cannot access file.", null, null);
    alert.setTimeout(Alert.FOREVER);
    alert.setType(AlertType.ERROR);
    _display.setCurrent(alert);
    }
    catch( IOException error )
    {System.out.println("fichier non trouvé2");
    Alert alert = new Alert("Error", error.toString(), null, null);
    alert.setTimeout(Alert.FOREVER);
    alert.setType(AlertType.ERROR);
    _display.setCurrent(alert);
    }

    le chemin pour avoir accès à la carte SD est le suivant:
    Connector.open("file:///SD Card/texte.cvs", Connector.READ_WRITE );

    Par contre pour faire les tests sur PC, avec eclipse, le chemin d'accès au fichier est le suivant:
    Connector.open("file:///root1/texte.cvs", Connector.READ_WRITE );

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme d'ecriture dans un fichier texte
    Par azrael88370 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/01/2005, 17h33
  2. Script shell - écriture dans un fichier
    Par Leishmaniose dans le forum Linux
    Réponses: 6
    Dernier message: 13/12/2004, 22h48
  3. Probleme d'ecriture dans un fichier en mode Text
    Par bbozet dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/01/2004, 13h46
  4. [LG]ecriture dans un fichier binaire
    Par jsaviola dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2003, 17h30
  5. Réponses: 2
    Dernier message: 26/09/2003, 14h51

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