SlideShare une entreprise Scribd logo
Créer un “ Log File “ sous
NetBeans IDE 6.5 et la plate-forme
                        plate-
J2ME


                   Zied CHEBIL


                                 1
INTRODUCTION


J2ME (Java 2 Micro Edition) ou Java ME est le framework Java
spécialisé dans les applications mobiles.
Des plates-formes Java compatibles avec J2ME sont embarquées
dans de nombreux téléphones portables et PDA.




                                                               2
INTRODUCTION

Une plate-forme J2ME est composée :
  * d'une KVM (Kilobyte Virtual Machine), une machine virtuelle
capable d'exécuter une application Java
  * d'une « configuration », une API donnant accès aux fonctions
de base du système
  * d'un « profil », une API donnant accès aux fonctions
spécifiques de la plate-forme.




                                                              3
INTRODUCTION

Les configurations les plus courantes sont :
   * CLDC (Connected Limited Device Configuration), que l'on
             (Connected
retrouve par exemple dans les téléphones mobiles
   * CDC (Connected Device Configuration), qui est plutôt
           (Connected
utilisé dans des décodeurs de télévision numérique

Les profils les plus courants sont :
  * MIDP (Mobile Information Device Profile), dont sont équipés
les téléphones WAP J2ME
   * DoJa, développé par NTT DoCoMo pour les téléphones i-
mode J2ME

                                                             4
INTRODUCTION




               5
Présentations de NetBeans IDE 6.5




                                    6
Style d`affichage
Projects                               -Source :code java
-Choix du projet actif                 -Screen :concepton d`un seul écran de l`IHM en       Palette
-Visualisation des éléments            utilisant la palette de composants                   -composant
java du projet                         -Flow : conception de l`enchainement de l`IHM en     graphiques
                                       utilisant la palette de composants




     Navigator                                  Output
                                                                                Properties
                                                -Affichage des messages de
     -Visualisation de l`organisation des                                       -Affichage des messages
     composants graphiques                      construction du projet et
                                                                                de construction du projet
                                                des sorties console                                    7
                                                                                et des sorties console
Créer un « Log file » sous
NetBeans IDE 6.5 avec J2ME
Dans l`IDE NetBeans et sous la plate-forme J2ME,
certains paquetages sont insupportables ou absents.
Parmi ces paquetages celle de « java.text ».




 Malgré que ce paquetage existe dans les différentes plate-
 forme, de java mais il est non fonctionnel sur la plate-forme
 J2ME.

                                                                 8
Comment donc créer un Log file sous la
plateforme J2ME ?




     Java offre un API pour résoudre ce problème, ce
     dernier s`appelle « File Connection API »




                                                       9
JAVA offre un « File Connection API » dont le but
d`accèder aux fichiers système de l`appareil
téléphonique.

FileConnection fc =
(FileConnection)Connector.open(String URL, int mode) ;


Format URL :
file:///<host>/<root>/<directory>/<directory>/.../<name>

L`URL débute avec “file:///” pour indiquer que le fichier
est accessible dans le localhost

 Les modes : Connector.READ, Connector.WRITE, ou
 Connector.READ_WRITE

                                                            10
Exemple : Ecrire un « Log file »
 public void ecrireLigne(String s) throws IOException
  {
   OutputStream out;
   PrintStream print;
    FileConnection fc =
 (FileConnection)Connector.open("file:///root1/java.txt");
   //On ouvre un flux de sortie sur le fichier, en se positionnant à la fin
   out = fc.openOutputStream(fc.fileSize());
   //On ouvre un flux PrintStream depuis le flux de sortie
   //pour faciliter l'écriture ds le fichier
   print = new PrintStream(out);
   //On écrit la chaine avec un retour chariot
   print.println(s);
   //Fermeture des flux
   print.close();
   out.close();

 }

                                                                              11
Exemple : Lire un « Log file »
public String readHelpText() throws IOException
 {
   InputStream is ;
    FileConnection fc = (FileConnection)Connector.open("file:///root1/java.txt");
 //On ouvre un flux de sortie sur le fichier, en se positionnant à la fin
 is = fc.openInputStream();
String text ="" ;
   try
   {
     StringBuffer sb = new StringBuffer();
     int chr, i = 0;
     // lire jusqu`a la fin de stream
     while ((chr = is.read()) != -1)
      text =text+((char) chr) ;
return text;
   }
   catch (Exception e)
   {System.out.println(« Impossible d`acceder au stream"); }
return null;
 }
                                                                                    12
Exemple : Effacer le contenu
de « Log file »
 public void effacer_log_fichier() throws IOException
  {
   InputStream is ;
      FileConnection fc =
 (FileConnection)Connector.open("file:///root1/java.txt");
   //On ouvre un flux de sortie sur le fichier, en se positionnant à la fin
   is = fc.openInputStream();
   is.reset();
  }




                                                                              13
Erreur lors d`une ouverture d`un fichier




                                           14
L`émulateur ne peut pas accéder au fichier




Il faut créer ce fichier dans le bon chemin pour
exécuter l`application, car l`émulateur essaye
d'ouvrir un fichier qui est réellement n`existe pas.
On change l`émulateur si le problème persiste ,
car certain émulateur ne supporte pas cette
stratégie.
(l` émulateur Sprint peut être une solution ).


                                                       15
Création de fichier Log :
Il faut créer un dossier qui s`appelle “root1”( certains
émulateur possède ce dossier par défaut ) ensuite créer
votre fichier .
'C:WTK22appdbDefaultColorPhonefilesystemroot1
java.txt'

Nous pouvons créer le fichier avec un code :
try {
FileConnection fc = (FileConnection)Connector.open("file:///root1/java.txt");
// Create the file if it doesn't exist.
if(!fc .exists())
{fc.create(); }




                                                                                16
Classe LOG:
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import javax.microedition.io.Connector;
/**
 *
 * @author Zied Chebil
 */
public class LOG {

  public void ecrire(String s) throws IOException
{
 OutputStream out;
 PrintStream print;
    FileConnection fc = (FileConnection)Connector.open("file:///root1/java.txt");
 //On ouvre un flux de sortie sur le fichier, en se positionnant à la fin
 out = fc.openOutputStream(fc.fileSize());
 //On ouvre un flux PrintStream depuis le flux de sortie
 //pour faciliter l'écriture ds le fichier
 print = new PrintStream(out);
 //On écrit la chaine
 print.println(s);                                                                  17
//Fermeture des flux
 print.close();
 out.close();
}
public String readText() throws IOException
 {
     InputStream is ;
      FileConnection fc = (FileConnection)Connector.open("file:///root1/java.txt");
 //On ouvre un flux de sortie sur le fichier, en se positionnant à la fin
 is = fc.openInputStream();

           // getClass().getResourceAsStream("file:///root1/java.txt");
     String text ="" ;
     try
     {
       StringBuffer sb = new StringBuffer();
       int chr, i = 0;
      // Read until the end of the stream
      while ((chr = is.read()) != -1)
      {
          // sb.append((char) chr);
       text =text+((char) chr) ;

      }

                                                                                      18
System.out.println(text);
      return text;
    }
    catch (Exception e)
    {
      System.out.println("Unable to create stream");
    }
    return null;
  }
public void effacer_log_fichier() throws IOException
 {
  InputStream is ;
     FileConnection fc =
(FileConnection)Connector.open("file:///root1/java.txt");
    //On ouvre un flux de sortie sur le fichier, en se positionnant à la fin
 is = fc.openInputStream();
 is.reset();
}

}




                                                                               19
Interface D`accueil du projet : Emploi de Temps intelligent qui
utilise le Log file.




                                                                  20
Merci pour votre Attention




                             21

Contenu connexe

Tendances

Atelier symfony n 3
Atelier symfony n 3Atelier symfony n 3
Atelier symfony n 3
Amir Souissi
 
lpi 101 notes de cours
lpi 101 notes de courslpi 101 notes de cours
lpi 101 notes de cours
ISIG
 
"Input/Ouput, 16 ans après" à Devoxx France 2012
"Input/Ouput, 16 ans après" à Devoxx France 2012"Input/Ouput, 16 ans après" à Devoxx France 2012
"Input/Ouput, 16 ans après" à Devoxx France 2012
Jean-Michel Doudoux
 
openFrameworks
openFrameworksopenFrameworks
openFrameworks
LeStudioiInteractif
 
Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web services
Lilia Sfaxi
 
Les nouveautés de java 7 et les promesses
Les nouveautés de java 7  et les promessesLes nouveautés de java 7  et les promesses
Les nouveautés de java 7 et les promessesEric Toguem
 
[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco
[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco
[DRAFT] Utiliser VmWare pour l'installation d'un AlfrescoPASCAL Jean Marie
 
cours j2ee -présentation
cours  j2ee -présentationcours  j2ee -présentation
cours j2ee -présentation
Yassine Badri
 
Commandes usuelle linux
Commandes usuelle   linuxCommandes usuelle   linux
Commandes usuelle linux
Fabrice Sonzahi
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
Majid CHADAD
 
Manip fichier
Manip fichierManip fichier
Manip fichier
Imane Bellali
 
utilisation des core dump sous linux
utilisation des core dump sous linuxutilisation des core dump sous linux
utilisation des core dump sous linux
Thierry Gayet
 
Shell sans les coquilles
Shell sans les coquillesShell sans les coquilles
Shell sans les coquilles
Édouard Lopez
 
DRAFT - Vm Ware - Installation Nuxeo
DRAFT - Vm Ware - Installation NuxeoDRAFT - Vm Ware - Installation Nuxeo
DRAFT - Vm Ware - Installation NuxeoPASCAL Jean Marie
 
Cours php
Cours php Cours php
Cours php
Yassine Badri
 
Procédure de configuration et préparation de l’environnement sous windows
Procédure de configuration et préparation de l’environnement sous windowsProcédure de configuration et préparation de l’environnement sous windows
Procédure de configuration et préparation de l’environnement sous windows
Addi Ait-Mlouk
 
Installation de mongo_db_sur_windows_xp
Installation de mongo_db_sur_windows_xpInstallation de mongo_db_sur_windows_xp
Installation de mongo_db_sur_windows_xpsaidelfazni
 
Cours services web_fabrice_mourlin
Cours services web_fabrice_mourlinCours services web_fabrice_mourlin
Cours services web_fabrice_mourlinangeeLee
 

Tendances (20)

Atelier symfony n 3
Atelier symfony n 3Atelier symfony n 3
Atelier symfony n 3
 
lpi 101 notes de cours
lpi 101 notes de courslpi 101 notes de cours
lpi 101 notes de cours
 
"Input/Ouput, 16 ans après" à Devoxx France 2012
"Input/Ouput, 16 ans après" à Devoxx France 2012"Input/Ouput, 16 ans après" à Devoxx France 2012
"Input/Ouput, 16 ans après" à Devoxx France 2012
 
openFrameworks
openFrameworksopenFrameworks
openFrameworks
 
Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web services
 
Les nouveautés de java 7 et les promesses
Les nouveautés de java 7  et les promessesLes nouveautés de java 7  et les promesses
Les nouveautés de java 7 et les promesses
 
[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco
[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco
[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco
 
Commande linux
Commande linuxCommande linux
Commande linux
 
cours j2ee -présentation
cours  j2ee -présentationcours  j2ee -présentation
cours j2ee -présentation
 
Commandes usuelle linux
Commandes usuelle   linuxCommandes usuelle   linux
Commandes usuelle linux
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Manip fichier
Manip fichierManip fichier
Manip fichier
 
utilisation des core dump sous linux
utilisation des core dump sous linuxutilisation des core dump sous linux
utilisation des core dump sous linux
 
Shell sans les coquilles
Shell sans les coquillesShell sans les coquilles
Shell sans les coquilles
 
DRAFT - Vm Ware - Installation Nuxeo
DRAFT - Vm Ware - Installation NuxeoDRAFT - Vm Ware - Installation Nuxeo
DRAFT - Vm Ware - Installation Nuxeo
 
Cours php
Cours php Cours php
Cours php
 
Procédure de configuration et préparation de l’environnement sous windows
Procédure de configuration et préparation de l’environnement sous windowsProcédure de configuration et préparation de l’environnement sous windows
Procédure de configuration et préparation de l’environnement sous windows
 
Apache Open SSL
Apache Open SSLApache Open SSL
Apache Open SSL
 
Installation de mongo_db_sur_windows_xp
Installation de mongo_db_sur_windows_xpInstallation de mongo_db_sur_windows_xp
Installation de mongo_db_sur_windows_xp
 
Cours services web_fabrice_mourlin
Cours services web_fabrice_mourlinCours services web_fabrice_mourlin
Cours services web_fabrice_mourlin
 

En vedette

Actions SEPRA (Green travel)
Actions SEPRA (Green travel)Actions SEPRA (Green travel)
Actions SEPRA (Green travel)ecocomenius
 
Best photos 2007
Best photos 2007Best photos 2007
Best photos 2007
Ioannis Papanikolaou
 
Wie funktioniert traveltigers?
Wie funktioniert traveltigers?Wie funktioniert traveltigers?
Wie funktioniert traveltigers?
KatjaBo
 
GDUM Unternehmensmanagement
GDUM UnternehmensmanagementGDUM Unternehmensmanagement
GDUM Unternehmensmanagement
Verlagentur
 
Portafolio Diagnóstico
Portafolio DiagnósticoPortafolio Diagnóstico
Portafolio Diagnóstico
Lorena Rioseco Palacios
 
Website
WebsiteWebsite
Mouvement communal novembre 2011
Mouvement communal novembre 2011Mouvement communal novembre 2011
Mouvement communal novembre 2011
Union des Villes et Communes de Wallonie
 
Notre collège
Notre collègeNotre collège
Notre collège
School
 
#LeanStrategy - HeroesFest 2015
#LeanStrategy - HeroesFest 2015#LeanStrategy - HeroesFest 2015
#LeanStrategy - HeroesFest 2015
Esteban D. Mancuso; MBA
 
Objetivo estrategico 3 ok
Objetivo estrategico 3 okObjetivo estrategico 3 ok
Objetivo estrategico 3 ok
pcmacory
 
Jesus david beltran ramos sitos turisticos, historicos y monumentos de vall...
Jesus david beltran ramos   sitos turisticos, historicos y monumentos de vall...Jesus david beltran ramos   sitos turisticos, historicos y monumentos de vall...
Jesus david beltran ramos sitos turisticos, historicos y monumentos de vall...
Centro Educativo de Sistemas Uparsistem
 
Plaquette Dr Multicanal
Plaquette Dr MulticanalPlaquette Dr Multicanal
Plaquette Dr Multicanal
PICOU
 
Mon idole. ana
Mon idole. anaMon idole. ana
Mon idole. ana
School
 

En vedette (20)

Actions SEPRA (Green travel)
Actions SEPRA (Green travel)Actions SEPRA (Green travel)
Actions SEPRA (Green travel)
 
Best photos 2007
Best photos 2007Best photos 2007
Best photos 2007
 
Wie funktioniert traveltigers?
Wie funktioniert traveltigers?Wie funktioniert traveltigers?
Wie funktioniert traveltigers?
 
GDUM Unternehmensmanagement
GDUM UnternehmensmanagementGDUM Unternehmensmanagement
GDUM Unternehmensmanagement
 
Portafolio Diagnóstico
Portafolio DiagnósticoPortafolio Diagnóstico
Portafolio Diagnóstico
 
Website
WebsiteWebsite
Website
 
Un 2questions
Un 2questionsUn 2questions
Un 2questions
 
Mouvement communal novembre 2011
Mouvement communal novembre 2011Mouvement communal novembre 2011
Mouvement communal novembre 2011
 
Notre collège
Notre collègeNotre collège
Notre collège
 
Thesis
ThesisThesis
Thesis
 
Himpunan semesta
Himpunan semestaHimpunan semesta
Himpunan semesta
 
Bachlor
BachlorBachlor
Bachlor
 
Les 10 1
Les 10 1Les 10 1
Les 10 1
 
DENUNCIA
DENUNCIADENUNCIA
DENUNCIA
 
#LeanStrategy - HeroesFest 2015
#LeanStrategy - HeroesFest 2015#LeanStrategy - HeroesFest 2015
#LeanStrategy - HeroesFest 2015
 
Objetivo estrategico 3 ok
Objetivo estrategico 3 okObjetivo estrategico 3 ok
Objetivo estrategico 3 ok
 
Website
WebsiteWebsite
Website
 
Jesus david beltran ramos sitos turisticos, historicos y monumentos de vall...
Jesus david beltran ramos   sitos turisticos, historicos y monumentos de vall...Jesus david beltran ramos   sitos turisticos, historicos y monumentos de vall...
Jesus david beltran ramos sitos turisticos, historicos y monumentos de vall...
 
Plaquette Dr Multicanal
Plaquette Dr MulticanalPlaquette Dr Multicanal
Plaquette Dr Multicanal
 
Mon idole. ana
Mon idole. anaMon idole. ana
Mon idole. ana
 

Similaire à log file sous Netbeans et J2ME

Entrees sorties
Entrees sortiesEntrees sorties
Entrees sortiesyazidds2
 
Formation Informatique base et généralités
Formation Informatique base et généralitésFormation Informatique base et généralités
Formation Informatique base et généralités
Sinovatia
 
Les entrées sorties
Les entrées sortiesLes entrées sorties
Les entrées sortiesJihed Kaouech
 
Framework Hibernate
Framework HibernateFramework Hibernate
Framework Hibernate
Ines Ouaz
 
Affichage d'un document Office sous Android
Affichage d'un document Office sous AndroidAffichage d'un document Office sous Android
Affichage d'un document Office sous Android
Stéphane Liétard
 
Presentation Symfony2
Presentation Symfony2Presentation Symfony2
Presentation Symfony2Ahmed ABATAL
 
Etude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxEtude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxThierry Gayet
 
Go
GoGo
Build automatique et distribution OTA avec Xcode 4.x et Jenkins
Build automatique et distribution OTA avec Xcode 4.x et JenkinsBuild automatique et distribution OTA avec Xcode 4.x et Jenkins
Build automatique et distribution OTA avec Xcode 4.x et Jenkins
CocoaHeads France
 
Maintenance du système Linux
Maintenance du système LinuxMaintenance du système Linux
Maintenance du système LinuxEL AMRI El Hassan
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
ENSET, Université Hassan II Casablanca
 
Rapport tp1 j2ee
Rapport tp1 j2eeRapport tp1 j2ee
Rapport tp1 j2ee
Soukaina Boujadi
 
Apache ANT
Apache ANTApache ANT
Apache ANT
le.genie.logiciel
 
Présentation1
Présentation1Présentation1
Présentation1
Boulkenafet samir
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5
Microsoft
 
Apache flink - prise en main rapide
Apache flink - prise en main rapideApache flink - prise en main rapide
Apache flink - prise en main rapide
Bilal Baltagi
 
Play Framework
Play FrameworkPlay Framework
Play FrameworkArmaklan
 
Java-Introduction (1).pdf
Java-Introduction (1).pdfJava-Introduction (1).pdf
Java-Introduction (1).pdf
KuateTanguy2
 
Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012
Jean-Marc Fontaine
 

Similaire à log file sous Netbeans et J2ME (20)

Entrees sorties
Entrees sortiesEntrees sorties
Entrees sorties
 
Formation Informatique base et généralités
Formation Informatique base et généralitésFormation Informatique base et généralités
Formation Informatique base et généralités
 
Les entrées sorties
Les entrées sortiesLes entrées sorties
Les entrées sorties
 
Framework Hibernate
Framework HibernateFramework Hibernate
Framework Hibernate
 
Affichage d'un document Office sous Android
Affichage d'un document Office sous AndroidAffichage d'un document Office sous Android
Affichage d'un document Office sous Android
 
Presentation Symfony2
Presentation Symfony2Presentation Symfony2
Presentation Symfony2
 
Etude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxEtude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU Linux
 
Go
GoGo
Go
 
Build automatique et distribution OTA avec Xcode 4.x et Jenkins
Build automatique et distribution OTA avec Xcode 4.x et JenkinsBuild automatique et distribution OTA avec Xcode 4.x et Jenkins
Build automatique et distribution OTA avec Xcode 4.x et Jenkins
 
Maintenance du système Linux
Maintenance du système LinuxMaintenance du système Linux
Maintenance du système Linux
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 
Rapport tp1 j2ee
Rapport tp1 j2eeRapport tp1 j2ee
Rapport tp1 j2ee
 
Springioc
SpringiocSpringioc
Springioc
 
Apache ANT
Apache ANTApache ANT
Apache ANT
 
Présentation1
Présentation1Présentation1
Présentation1
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5
 
Apache flink - prise en main rapide
Apache flink - prise en main rapideApache flink - prise en main rapide
Apache flink - prise en main rapide
 
Play Framework
Play FrameworkPlay Framework
Play Framework
 
Java-Introduction (1).pdf
Java-Introduction (1).pdfJava-Introduction (1).pdf
Java-Introduction (1).pdf
 
Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012
 

log file sous Netbeans et J2ME

  • 1. Créer un “ Log File “ sous NetBeans IDE 6.5 et la plate-forme plate- J2ME Zied CHEBIL 1
  • 2. INTRODUCTION J2ME (Java 2 Micro Edition) ou Java ME est le framework Java spécialisé dans les applications mobiles. Des plates-formes Java compatibles avec J2ME sont embarquées dans de nombreux téléphones portables et PDA. 2
  • 3. INTRODUCTION Une plate-forme J2ME est composée : * d'une KVM (Kilobyte Virtual Machine), une machine virtuelle capable d'exécuter une application Java * d'une « configuration », une API donnant accès aux fonctions de base du système * d'un « profil », une API donnant accès aux fonctions spécifiques de la plate-forme. 3
  • 4. INTRODUCTION Les configurations les plus courantes sont : * CLDC (Connected Limited Device Configuration), que l'on (Connected retrouve par exemple dans les téléphones mobiles * CDC (Connected Device Configuration), qui est plutôt (Connected utilisé dans des décodeurs de télévision numérique Les profils les plus courants sont : * MIDP (Mobile Information Device Profile), dont sont équipés les téléphones WAP J2ME * DoJa, développé par NTT DoCoMo pour les téléphones i- mode J2ME 4
  • 7. Style d`affichage Projects -Source :code java -Choix du projet actif -Screen :concepton d`un seul écran de l`IHM en Palette -Visualisation des éléments utilisant la palette de composants -composant java du projet -Flow : conception de l`enchainement de l`IHM en graphiques utilisant la palette de composants Navigator Output Properties -Affichage des messages de -Visualisation de l`organisation des -Affichage des messages composants graphiques construction du projet et de construction du projet des sorties console 7 et des sorties console
  • 8. Créer un « Log file » sous NetBeans IDE 6.5 avec J2ME Dans l`IDE NetBeans et sous la plate-forme J2ME, certains paquetages sont insupportables ou absents. Parmi ces paquetages celle de « java.text ». Malgré que ce paquetage existe dans les différentes plate- forme, de java mais il est non fonctionnel sur la plate-forme J2ME. 8
  • 9. Comment donc créer un Log file sous la plateforme J2ME ? Java offre un API pour résoudre ce problème, ce dernier s`appelle « File Connection API » 9
  • 10. JAVA offre un « File Connection API » dont le but d`accèder aux fichiers système de l`appareil téléphonique. FileConnection fc = (FileConnection)Connector.open(String URL, int mode) ; Format URL : file:///<host>/<root>/<directory>/<directory>/.../<name> L`URL débute avec “file:///” pour indiquer que le fichier est accessible dans le localhost Les modes : Connector.READ, Connector.WRITE, ou Connector.READ_WRITE 10
  • 11. Exemple : Ecrire un « Log file » public void ecrireLigne(String s) throws IOException { OutputStream out; PrintStream print; FileConnection fc = (FileConnection)Connector.open("file:///root1/java.txt"); //On ouvre un flux de sortie sur le fichier, en se positionnant à la fin out = fc.openOutputStream(fc.fileSize()); //On ouvre un flux PrintStream depuis le flux de sortie //pour faciliter l'écriture ds le fichier print = new PrintStream(out); //On écrit la chaine avec un retour chariot print.println(s); //Fermeture des flux print.close(); out.close(); } 11
  • 12. Exemple : Lire un « Log file » public String readHelpText() throws IOException { InputStream is ; FileConnection fc = (FileConnection)Connector.open("file:///root1/java.txt"); //On ouvre un flux de sortie sur le fichier, en se positionnant à la fin is = fc.openInputStream(); String text ="" ; try { StringBuffer sb = new StringBuffer(); int chr, i = 0; // lire jusqu`a la fin de stream while ((chr = is.read()) != -1) text =text+((char) chr) ; return text; } catch (Exception e) {System.out.println(« Impossible d`acceder au stream"); } return null; } 12
  • 13. Exemple : Effacer le contenu de « Log file » public void effacer_log_fichier() throws IOException { InputStream is ; FileConnection fc = (FileConnection)Connector.open("file:///root1/java.txt"); //On ouvre un flux de sortie sur le fichier, en se positionnant à la fin is = fc.openInputStream(); is.reset(); } 13
  • 14. Erreur lors d`une ouverture d`un fichier 14
  • 15. L`émulateur ne peut pas accéder au fichier Il faut créer ce fichier dans le bon chemin pour exécuter l`application, car l`émulateur essaye d'ouvrir un fichier qui est réellement n`existe pas. On change l`émulateur si le problème persiste , car certain émulateur ne supporte pas cette stratégie. (l` émulateur Sprint peut être une solution ). 15
  • 16. Création de fichier Log : Il faut créer un dossier qui s`appelle “root1”( certains émulateur possède ce dossier par défaut ) ensuite créer votre fichier . 'C:WTK22appdbDefaultColorPhonefilesystemroot1 java.txt' Nous pouvons créer le fichier avec un code : try { FileConnection fc = (FileConnection)Connector.open("file:///root1/java.txt"); // Create the file if it doesn't exist. if(!fc .exists()) {fc.create(); } 16
  • 17. Classe LOG: import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintStream; import javax.microedition.io.Connector; /** * * @author Zied Chebil */ public class LOG { public void ecrire(String s) throws IOException { OutputStream out; PrintStream print; FileConnection fc = (FileConnection)Connector.open("file:///root1/java.txt"); //On ouvre un flux de sortie sur le fichier, en se positionnant à la fin out = fc.openOutputStream(fc.fileSize()); //On ouvre un flux PrintStream depuis le flux de sortie //pour faciliter l'écriture ds le fichier print = new PrintStream(out); //On écrit la chaine print.println(s); 17
  • 18. //Fermeture des flux print.close(); out.close(); } public String readText() throws IOException { InputStream is ; FileConnection fc = (FileConnection)Connector.open("file:///root1/java.txt"); //On ouvre un flux de sortie sur le fichier, en se positionnant à la fin is = fc.openInputStream(); // getClass().getResourceAsStream("file:///root1/java.txt"); String text ="" ; try { StringBuffer sb = new StringBuffer(); int chr, i = 0; // Read until the end of the stream while ((chr = is.read()) != -1) { // sb.append((char) chr); text =text+((char) chr) ; } 18
  • 19. System.out.println(text); return text; } catch (Exception e) { System.out.println("Unable to create stream"); } return null; } public void effacer_log_fichier() throws IOException { InputStream is ; FileConnection fc = (FileConnection)Connector.open("file:///root1/java.txt"); //On ouvre un flux de sortie sur le fichier, en se positionnant à la fin is = fc.openInputStream(); is.reset(); } } 19
  • 20. Interface D`accueil du projet : Emploi de Temps intelligent qui utilise le Log file. 20
  • 21. Merci pour votre Attention 21