Vous êtes sur la page 1sur 5

..-.. fl ..i.i&!Ml.

SU;;,···, :ir'

I
·I Q
Examen de RIP (Partie Java-) Sujet de 4 Pages

Lundi 22 Mars 20
r
ours autorlses - bareme lndlcatlf
Documents du C

EXERCICE 1: .. kets pour telecharger une image sur le net en http? Justifiez votre
QUESTION 1. Peut-on unhser 1es soc
reponse.

QUESTION z,_ Peut-on ecrire: .


Socket socket• new Socket()
socket.setHost("l23,32,222,l )I
socket.setPort(45)J

QUESTION 3. Oonnez un exempe1


d'un filtre permettant de creer un BufferedReader a partir d'un
InputStream.
Donnez un exemple d'un Flot permettant d'ecrire:
QUESTION
4. out.write("Bonjour tout le monde");

EXERCICE 2:
QUESTIONS. Soit la page rpostphp qui contient le code php suivant:

<?php

$chaine =
$_POST('message']; echo
coder(chaine) ;

Ce code permet de recevoir une chaine de caracteres en mode POST et de renvoyer (afficher) une chaine
codee de celle-ci.
QUESTION 6, Ecrivez lecode java permettantd'envoyerune chaine de caracteres a la page web rpostphp
accessible via l'url suivante :
http://site.nom.com/ rpost.php
QUESTION Z Ecrivez le code Java permettant de recuperer la c;haine codee.

EXERCICE 3:
Soitle code suivant permettant decreer un fichier contenant 6 octets (65, 66, 67, 68, 69 et 70):
1: FileOutputStream fos c new FileOutputst "
2: byte[] bl= {65, 66, 67, 68, 69, 70}• ream( test.txt");
3: fos.write(bl);'
4: fos.close();

QUESTIQNB. Donnez le resultatd'execution du CODE .


smvant:
1: FileinputStream fis = new Filein ts
2:
int n = 4;pu treamc "test.txt"); yte [] b2 = new byte [n];
3:
int X ;
EXERCICE 4 ·
QUESTION 9. A la fin de !'execution du code suivant, donnez le contenu du buffer b:

FileOutputStream fos = new FileOutputStream("fichier.txt");


'
PrintStream ps = new P ri iatntStwam(fos);
ps.print("A BIENfO'l"{
ps•close();
E");l- f> 1
fos.close();
FileReader fr= new FileReader("ficl:!.ier.txt");
char { l b = { , Q,, , , u ,, A, , , L, , , 1, , , F, } ;
fr.read(b, O, 2);
fr.read(b, 1, 4) ;-
£ r. read( b, 2, 3);-
fr.read( b, 3, 2);--
fr.read(b, 2, 2)
fr.read(b, 4, l);-
fr.read(b, 2, 3);.._.
fr.read(b, 3, 2);
fr.read(b, 4, l);-
fr.read(b, 3, 2);

EXERCICE S:
Soit la Classe Source.java suivante :

public class Source extends Thread { private int x = O;


public void inc() {
x++;
}
public void afficher() { System.out.println(x);
}
}

Soit la classe Tache.·ava suivante :


public class Tache extends Thread { private Source source •
public Tache(Source so rce) { this.source= source;
}
public void run() {
for (inti= O; i < lOO; i++) {
try {Thread.sleep(2000)• } catch (InterruptedException e) {} source.inc();'
}
}
}

Et la derniere classe Main.java suivante :

public class Main {


publ i c s t at i c v o i d
S o ur c e s o ur c e _
main(Strin [
- new Source()•
new Tache(source).start()· ,
new Tache(source).start():
new Tache(source).start(,);
new T e ad(
P uhl 1' n';'W Runnable()
{ ';' void run()
{ while(true) {
try {Thread slee
source aff'.h p(lOOO);} catch (InterruptedException e) {}
}
try Th ic er();
{ read.eleep(l g 1 args)catch
OOO);} throws IOException {
(InterruptedException e) {}
}
}) •&tart() 1
L'execution de celeprogramme
donner resultat ( . .
. Mam.Java) peut
SU ivant: Alors que nous voudrions que le resultat soit
comrne suit:
0
1 0
3 3
5 6
7 9
9 12
10 15
12 18
14 21
16 24
18 27
30

QUESTION 10. Corrigez pour obtenir ce dernier resultat

EXERCICE 6:

Soit la Classe Source.java suivante :

public class Source extends Thread {


private int x = 0;
public void inc(int id) {
x++;
System.out.println(id+" "+:ir:);
}
}

Soit la classe Tache.java suivante :


public class Tache extends Thread { private Source source;
private int id;
public Tache(Source source, int id) { this.source= source
this.id= id;
}
public void run() {
for (inti= 0;i < 100; i++) {
try {Thread.sleep(l000); } catch (InterruptedBxception e) {}
source.inc(id);
}
}
}

Et la derniere classe Main.java suivante :

public class Main {


public static void main(String[J args) throws I0Bxception { source source= new Source();
new Tache(source, l).start(); new Tache(source, 2).start()
}

}
Page 3/4
7------------
QUESTION 11. Modifiez ce qu'il faut pour que QUESTION 12. Modifiez ce qu'il faut pour que
. ---

l'execution affiche le resultat suivant: quand lex de Ia dasse Source sera egal a
10, uniquement une seule tache
continue a incrementer X jusqu'a ce que
1 1 X soit egal
2 2 a 20, on revient a la normale, c'est a dire
1 3 Jes deux taches continuent a incrementer
2 4
x. Ce qui donne le resultat suivant:
1 5
2 6
1 1
1 7
2 2
2 8
1 3
1 9
2 10 2 4
1 11
1 5
2 12 2 6
1 13 1 7
2 14 2 8
1 9
101
1 15
2 16 2
l 17 1 11
2 18 1 12.
1 19 1 13
2 20 1 14
1 15
1 16
1 171
1 18
1 19

1
1

2
2
21
22
1 23
2 24
1 25
2 26
1 27
2 28
1 29
2 30

Vous aimerez peut-être aussi