+ All Categories
Home > Documents > Conception et Réalisation Java RIP : Partie...

Conception et Réalisation Java RIP : Partie...

Date post: 27-Sep-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
30
Concep'on et Réalisa'on Java RIP : Par'e 2 Ahcène Bounceur
Transcript
Page 1: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

Concep'on et Réalisa'on JavaRIP : Par'e 2Ahcène Bounceur

Page 2: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

Présenta)on

• Ahcène Bounceur• Maître de conférences – département informatique de l'UBO• Cours (Java, RIP, Android)• Recherche : IoT• Bureau : Lc208 (poste 62 17)• Email : [email protected]• Page perso : www.bounceur.com• Cours : www.bounceur.com à Teaching à Java (Réseaux)

Page 3: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

Le mot Java• Le langage Java :

– Patrick Naughton : créateur– James Gosling : concepteur– Équipe : John Gage, James Gosling, Joy Naughton, Wayne

Rosing et Eric Schmidt.– Premier nom Oak à il existe déjà (fabricant de cartes

vidéos)• Le nom Java fut inventé dans un pe2t bar fréquenté

par quelques membres de l'équipe.• James Gosling, Arthur Van Hoff et Andy Bechtolsheim• Just Another Vague Acronym• Java pour des cafeNères (systèmes embarqués)

Page 4: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

Le Nombre Magique

• C'est un nombre encodé sur 4 octets• Il permet aux programmes traitant

l'information de distinguer le format de données utilisé.

• En Java : il permet à la machine virtuelle de reconnaître les fichiers .class

Page 5: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

Lire un fichier d'octets en Javapublic static void main(String [] args) throws IOException {

FileInputStream fis = new FileInputStream("fichier.ppt");int x ;while((x=fis.read()) != -1) {System.out.print(x+" ");}fis.close();

}

Exécution :D0 CF 11 E0 …

Page 6: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

Lire un fichier d'octets en Javapublic static void main(String [] args) throws IOException {

FileInputStream fis = new FileInputStream("fichier.class");int x ;while((x=fis.read()) != -1) {System.out.print(x+" ");}fis.close();

}

Exécution :CA FE BA BE …

Produit du bar fréquentéJ et V n'existe pas en Hexadécimal

Humour Unique

?

Page 7: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

Séances• Présenta+on des séances (EDT-ENT)• Modifica+ons …• 5 CM• 5 TD• 4 TP + 1 séance d'évalua+on (démonstra+on)• 1 examen écrit• Note du projet : Rapport + démonstra+on + Code

+ Applica+on• Note finale : CC 2 TPs (coef 3/20 chaque), un projet

(coef 3/10) + Examen : écrit 2h (coef 2/5)

Page 8: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

Plan du cours

1. Les Flots2. Les Sockets3. Synchronisa9on4. JavaFX5. JDBC, Client/Serveur Bluetooth, Sérialisa9on,

sécurité …Peut être l’IoT

Page 9: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

Quelques applica,ons

• Clients/Serveur• Chat (sans fil) entre deux ordinateurs• Stockage à distance (client ftp)• Commande d'un robot, carte FPGA,

téléphone, …• Commande (sans fil) d'un ordinateur• Programmation d’une carte électronique• …

Page 10: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

www.#obe.comà TIOBE index

2020

Page 11: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

www.#obe.comà TIOBE index

2020

Page 12: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

www.#obe.comà TIOBE index

2021

Page 13: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

www.#obe.comà TIOBE index

2021

Page 14: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

StringString s = new String("Bonjour tout le monde : 1:2:3:4");

s.charAt(3);s.contains("tout");byte [] bytes = s.getBytes();char [] ctab = new char[40];s.getChars(0, 6, ctab, 3);s.indexOf('o');s.indexOf("ou");s.lastIndexOf('o');s.lastIndexOf("ou");s.length();

Page 15: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

StringString s = new String("Bonjour tout le monde : 1:2:3:4");

s.charAt(3)); à j s.contains("tout")); à truebyte [] bytes = s.getBytes(); à 66 111 110… s.getChars(0, 6, ctab, 3); à ---Boujou---…s.indexOf('o'));à 1s.indexOf("ou")); à 4s.lastIndexOf('o')); à 17s.lastIndexOf("ou")); à 9s.length()); à 31

Page 16: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

StringString s = new String("Bonjour tout le monde : 1:2:3:4");

s.matches("Bonjour tout le monde : 1:2:3:4"));à trues.replace('o', '*')); à B*nj*ur t*o…String [] stab = s.split(":"); à Bonjour…

1234s.startsWith("Bon")); à trues.substring(3));à jour tout …s.toCharArray()); à tableaus.toLowerCase()); à bonjour tout…s.toUpperCase()); à BONJOUR TOUT…

Page 17: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

StringString s1 = new String("abcd");String s2 = new String("abcd");String s3 = "abcd";String s4 = "abcd";

System.out.println(s1==s2); System.out.println(s3==s4);System.out.println(s1==s4);System.out.println(s4==s1);

Page 18: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

StringString s1 = new String("abcd");String s2 = new String("abcd");String s3 = "abcd";String s4 = "abcd";

System.out.println(s1.equals(s2));System.out.println(s3.equals(s4));System.out.println(s1.equals(s4));System.out.println(s4.equals(s1));

Page 19: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

Même principe

• Integer• Boolean• Byte• …

Page 20: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

StringBuffer

• Les méthodes intéressantes

Page 21: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

StringBufferStringBuffer s5 = new StringBuffer("abcd");StringBuffer s6 = new StringBuffer("abcd");

System.out.println(s5.equals(s6));System.out.println(s5.toString().equals(s6.t

oString()));

Page 22: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

Classe : Run+me

• Déclara+on :Runtime runtime = Runtime.getRuntime();

Page 23: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

Classe : Run+me

• Lancer une commande :– Exécuter une commande dans un processus externe :

public Process exec(String commande);

– Exécuter une commande dans un processus séparé• sans arguments

public Process exec(String[] cmdarray);

• avec argumentspublic Process exec(String[] cmdarray, String[] envp);

Page 24: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

Classe : Run+me

• Lancer une commande :public Process exec(String[] cmdarray, String[] envp, File dir);

public Process exec(String command, String[] envp);

public Process exec(String command, String[] envp, File dir);

Page 25: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

Classe : Process• Contrôler le processus (Runtime)• la méthode destroy() qui permet de tuer le processus de

l'application externe,• la méthode exitValue() qui permet de récupérer la valeur de retour

du processus de l'application externe,• la méthode getErrorStream() qui permet de récupérer le flux

d'erreur du processus de l'application externe,• la méthode getInputStream() qui permet de récupérer le flux de

sortie du processus de l'application externe,• la méthode getOutputStream() qui permet de récupérer le flux

d'entrée du processus de l'application externe,• la méthode waitFor() qui met le thread courant en attente que le

processus de l'application externe se termine.

Page 26: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

Communica)on avec une applica)on

• Flux• la méthode getErrorStream() permet de

récupérer un InputStream représentant le flux d'erreur de l'applica)on externe.

• la méthode getInputStream() permet de récupérer un InputStream représentant le flux de sor)e de l'applica)on externe.

• la méthode getOutputStream() permet de récupérer un OutputStream représentant le flux d'entrée de l'applica)on externe.

Page 27: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

Classe : Robotimport java.awt.AWTException;import java.awt.Robot;import java.awt.event.KeyEvent;

public class RobotExp {public static void main(String[] args) {try {

Robot robot = new Robot();robot.delay(5000);robot.keyPress(KeyEvent.VK_U);robot.keyPress(KeyEvent.VK_A);robot.keyPress(KeyEvent.VK_LEFT);robot.keyPress(KeyEvent.VK_DELETE);robot.keyPress(KeyEvent.VK_B);robot.keyPress(KeyEvent.VK_C);robot.keyPress(KeyEvent.VK_BACK_SPACE);robot.keyPress(KeyEvent.VK_O);

} catch (AWTException e) {}}

}

U|UA|U|AU|UB|UBC|UB|UBO|

Page 28: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

Classe : Robot

• Penser à relâcher le bouton !

robot.keyPress(KeyEvent.VK_SHIFT);robot.keyRelease(KeyEvent.VK_SHIFT);

Page 29: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

Projet (TPs)Programma'on d'un client FTP (type Filezilla)

• Intervenants : Alexandra Fronville, Fethi Ghazouani, Maxime Pistono

• Pourquoi ce projet ?• Projet se fait en binôme• DémonstraGon : semaine du 16 mars (dernier TP)

• A=en'on : dernier TP (possible semaine d’avant)• ApplicaGon finale + rapport à rendre le : ?? mars• Rendre UNE SEULE archive contenant : src+rapport (PDF)

– Nom de l’archive : projet_Op_nom1_nom2.zip• Le mail : objet sous forme

[PROJET-JAVA-FTP-2020] : Prénom1 Nom1, Prénom2 Nom2

Page 30: Conception et Réalisation Java RIP : Partie 2labsticc.univ-brest.fr/.../0_presentation_du_cours.pdf0_presentation_du_cours Author Bounceur Ahcène Created Date 12/19/2019 2:29:44

Alors

• Bon voyage (ensemble) au pays de Java et du réseau …


Recommended