0% ont trouvé ce document utile (0 vote)
6 vues11 pages

Formation Java/J2EE : Manipulation IO

Ce document décrit un TP sur l'utilisation du package java.io pour manipuler les fichiers en Java. Le TP couvre l'utilisation de classes comme Scanner, InputStream, BufferedReader, BufferedWriter, PrintWriter, ZipInputStream et RandomAccessFile.

Transféré par

Hasna Elimali
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
6 vues11 pages

Formation Java/J2EE : Manipulation IO

Ce document décrit un TP sur l'utilisation du package java.io pour manipuler les fichiers en Java. Le TP couvre l'utilisation de classes comme Scanner, InputStream, BufferedReader, BufferedWriter, PrintWriter, ZipInputStream et RandomAccessFile.

Transféré par

Hasna Elimali
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Formation Java/J2EE- le package [Link].

*
TP : Développement d’une application JAVA exploitant le package [Link].*
Date : 19/11/2013

Par : M. Abbou

I-Objectif du TP

L’objectif de ce TP est de vous montrer comment manipuler les fichiers via JAVA.

Vous allez apprendre comment :

Utiliser la classe Scanner ;


Utiliser la classe InputStream ;
Lire un fichier avec [Link] ;
Ecrire dans un fichier avec [Link];
Ecrire dans un fichier avec [Link];
Lire un fichier ZIP avec la classe ZipInputStream ;
Utiliser la classe RandomAccessFile ;
Exploiter l’api APACHE POI pour le traitement des fichiers de Microsoft Office.

Partie I- Lecture d’un clavier [Scanner]

1. Créer une classe [Link] contenant la méthode main ()..

2. Dans la méthode main instancié un objet de type [Link].


Noter que le constructeur de la classe Scanner prend le paramètre [Link].

3. Appeler la méthode nextLine() et afficher la chaine de caractère tapée à partir du


clavier.

Formation Java/J2EE – IO : TP 1 1
4. Appeler la méthode nextInt() et récupérer deux nombres puis faire la somme.

Partie II- Lecture d’un fichier de paramètres en utilisant la classe abstract


InputStream

1. Créer le fichier de conf [Link] et le mettre dans le CLASSPATH (dossier


src).

2. Remplissez le fichier de conf par exemple :


param1=value1
param2=value2

3- Créer la classe LirePropertiesFile comme suit :

package [Link];

import [Link];
import [Link];
import [Link];

public class LirePropertiesFile {

Formation Java/J2EE – IO : TP 1 2
private static final String CONF_FILE="[Link]";
private Properties prop=new Properties();

private void lire(String fileName) throws IOException {


[Link]([Link]().getClassLoader().getResourceAsStream(fileName));
}

public static void main(String[] args) {


LirePropertiesFile instance=new LirePropertiesFile();
try {
[Link](CONF_FILE);
[Link]("le contenu fu fichier " + CONF_FILE + " est: ");
Set<Object> keys=[Link]();
for (Object object : keys) {
[Link](object + " " +
[Link]([Link]()));
}
} catch (IOException e) {
[Link]();
}
}
}

Partie III- Lire et Ecrire avec [Link] et


[Link]

1. Créer le fichier de conf [Link] et le mettre dans le package


[Link].

2. Remplissez le fichier de conf par exemple :


path-to-file1=c:\\[Link]
path-to-file2=c:\\[Link]

3- Créer la classe LirePropertiesFile2 comme suit :


package [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class LireEtEcrireFile {
public static void main(String[] args) {
ResourceBundle rb = null;
rb = PropertyResourceBundle
.getBundle("[Link]");
String fileLecture = [Link]("file_lecture");
String fileEcriture = [Link]("file_ecriture");

Formation Java/J2EE – IO : TP 1 3
[Link](fileLecture);
[Link](fileEcriture);
// Pour lire dans le fichier
File file = new File(fileLecture);
FileReader fr;
try {
fr = new FileReader(file);
BufferedReader bfr = new BufferedReader(fr);

String line = [Link]();


while (line != null) {
[Link](line);
line = [Link]();
}
// Pour écrire dans le fichier
FileWriter frWrite = new FileWriter(fileEcriture);
BufferedWriter bfrWrite = new BufferedWriter(frWrite);
[Link]("sdsdsd");
[Link]();
} catch (FileNotFoundException e) {
[Link]();
} catch (IOException e) {
[Link]();
}
}
}

Partie IV- Ecrire avec [Link]


1. Créer le fichier de conf [Link] et le mettre dans le package
[Link].

2. Remplissez le fichier de conf par exemple :


path-to-file=c:\\[Link]

3- Créer la classe LireEtEcrireFile2comme suit :


package [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class LireEtEcrireFile2 {
public static void main(String[] args) {
ResourceBundle rb = null;
rb =
[Link]("[Link]");
String fileEcriture = [Link]("file_ecriture");
[Link](fileEcriture);
try {
// Pour écrire dans le fichier
PrintWriter pw = new PrintWriter(new File(fileEcriture));
[Link]("encore une ligne 1");
[Link]("encore une ligne 2");
[Link](1236d);

Formation Java/J2EE – IO : TP 1 4
[Link]();
[Link]();
} catch (FileNotFoundException e) {
[Link]();
}
}
}

Partie V- Lecture d’un fichier ZIP


1- Créer deux fichiers text ([Link] et [Link]). Insérer des données dans
les deux fichiers.

2- Compresser le fichier (par exemple [Link]).

3- Créer la classe LireFichierZip et implémenter la méthode main comme suit :


package [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class LireFichierZip {
public static void main(String[] args) {
String file = "C:/workspace/[Link]";
try {
ZipInputStream zipFile = new ZipInputStream(new
FileInputStream(file));
ZipEntry ze = [Link]();
while (ze != null) {
[Link]([Link]());
for (int c = [Link](); c != -1; c = [Link]())
[Link]((char) c);
ze = [Link]();
[Link]("");
}
[Link]();
[Link]();
} catch (FileNotFoundException e) {
[Link]();
} catch (IOException e) {
[Link]();
}
}
}

4- Exécuter le programme et observer le résultat.

Formation Java/J2EE – IO : TP 1 5
Partie VI- Accéder directement aux données avec RandomAccessFile

1- Créer la classe TestRandomAccesFileet implémenter la méthode main comme suit :

package [Link];

import [Link];

public class TestRandomAccesFile {


public static void main(String[] args) {

try {
//Pour écrire :
RandomAccessFile out = new RandomAccessFile("[Link]", "rw");
for (int i = 0; i < 10; i++) {
[Link](i * 100);
}
[Link]();
//Pour lire :
RandomAccessFile in = new RandomAccessFile("[Link]", "rw");
for (int i = 0; i < 10; i++) {
[Link]([Link]());
}
[Link]();
//Pour récupérer un enregistrement directement :
[Link]("L'enreistrement lu est :");
RandomAccessFile anotherFile = new RandomAccessFile("[Link]", "rw");
// 5 représente le sixième enregistement puisque le premier commence à 0
// 4 est la taille des données puisqu'elles sont des entiers de type int
// (codé sur 4 octets)
[Link](5*4);
[Link]([Link]());
[Link]();
//Pour Modifier un enregistrement directement :
RandomAccessFile anotherFile2 = new RandomAccessFile("[Link]", "rw");
// 5 représente le sixième enregistement puisque le premier commence à 0
// 4 est la taille des données puisqu'elles sont des entiers de type int
// (codé sur 4 octets)
[Link](5*4);
[Link](777);
[Link]();
//Pour lire :
[Link]("Lire après modification");
RandomAccessFile in2 = new RandomAccessFile(
"[Link]", "rw");
for (int i = 0; i < 10; i++) {
[Link]([Link]());
}
[Link]();
} catch (Exception e) {
[Link]();
}

}
}

Formation Java/J2EE – IO : TP 1 6
2- Exécuter le programme et observer le résultat.

Partie VII- Performance des flux « bufferisés »

Dans cet exemple, nous allons comparer les temps de réponse de lecture d’un fichier avec
FileInputStream et BufferedInputStream. Vous allez voir que la classe
BufferedInputStream est plus performante.

1- Créer la classe TestVitesseFlux et implémenter la méthode main comme suit :

package [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

public class TestVitesseFlux {


public static void main(String[] args) {
FileInputStream fis;
BufferedInputStream bis;
try {
fis = new FileInputStream(new File("C:/[Link]"));
bis = new BufferedInputStream(new FileInputStream(new File("C:/[Link]")));
byte[] buf = new byte[8];
long startTime = [Link]();
while ([Link](buf) != -1)
;

[Link]("Temps de lecture avec FileInputStream : "+


([Link]() - startTime));
startTime = [Link]();
while ([Link](buf) != -1)
;
[Link]("Temps de lecture avec BufferedInputStream : "+
([Link]() - startTime));
[Link]();
[Link]();
} catch (FileNotFoundException e) {
[Link]();
} catch (IOException e) {
[Link]();
}
}
}

2- Exécuter le programme et observer le résultat.

Formation Java/J2EE – IO : TP 1 7
Partie VIII- Exploitation de l’api APACHE POI

Création d’un fichier Excel

1- Ajouter les JAR listés ci-après au CLASSPATH :

Formation Java/J2EE – IO : TP 1 8
2- Créer la classe PoiWriteExcelFile comme suit :
package [Link];

import [Link];
import [Link];
import [Link];
import [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

public class PoiWriteExcelFile {

public static void main(String[] args) {


try {
FileOutputStream fileOut = new FileOutputStream("[Link]");
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet worksheet = [Link]("POI Worksheet");

// index from 0,0... cell A1 is cell(0,0)


// Il s'agit de la ligne 1 dans le fichier Excel
HSSFRow row1 = [Link](0);

//Première cellule dans la ligne 1


HSSFCell cellA1 = [Link](0);
[Link]("Hello");
HSSFCellStyle cellStyle = [Link]();
[Link]([Link]);
[Link](HSSFCellStyle.SOLID_FOREGROUND);
[Link](cellStyle);

//Deuxième cellule dans la ligne 1


HSSFCell cellB1 = [Link](1);
[Link]("Goodbye");
cellStyle = [Link]();

[Link](HSSFColor.LIGHT_CORNFLOWER_BLUE.index);
[Link](HSSFCellStyle.SOLID_FOREGROUND);
[Link](cellStyle);

//Troixième cellule dans la ligne 1


HSSFCell cellC1 = [Link](2);
[Link](true);

//Quatrième cellule dans la ligne 1


HSSFCell cellD1 = [Link](3);
[Link](new Date());
cellStyle = [Link]();

[Link]([Link]("m/d/yy h:mm"));
[Link](cellStyle);

[Link](fileOut);
[Link]();
[Link]();

Formation Java/J2EE – IO : TP 1 9
} catch (FileNotFoundException e) {
[Link]();
} catch (IOException e) {
[Link]();
}

}
}

3- Exécuter la méthode main. Le fichier [Link] devrait être crée :

Création d’un fichier Word

1- Ajouter les JAR au CLASSPATH. (mêmes JARs utilisés pour la première partie).

2- Créer la classe CreateDocumentFromScratch comme suit :


package [Link];

import [Link];
import [Link];
import [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

public class CreateDocumentFromScratch {


public static void main(String[] args) {
XWPFDocument document = new XWPFDocument();
XWPFParagraph paragraphOne = [Link]();
[Link]([Link]);
[Link]([Link]);
[Link]([Link]);

Formation Java/J2EE – IO : TP 1 10
[Link]([Link]);
[Link]([Link]);
[Link]([Link]);
XWPFRun paragraphOneRunOne = [Link]();
[Link](true);
[Link](true);
[Link]("Hello world! This is paragraph one!");
[Link]();
XWPFRun paragraphOneRunTwo = [Link]();
[Link]("Run two!");
[Link](100);
XWPFRun paragraphOneRunThree = [Link]();
[Link](true);
[Link](20);
[Link]([Link]);
[Link](" More text in paragraph one...");
XWPFParagraph paragraphTwo = [Link]();
[Link]([Link]);
[Link](200);
XWPFRun paragraphTwoRunOne = [Link]();
[Link]("And this is paragraph two.");
FileOutputStream outStream = null;
try {
outStream = new FileOutputStream("[Link]");
} catch (FileNotFoundException e) {
[Link]();
}
try {
[Link](outStream);
[Link]();
} catch (FileNotFoundException e) {
[Link]();
} catch (IOException e) {
[Link]();
}
}
}

3- Exécuter la méthode main. Le fichier [Link] devrait être crée :

Formation Java/J2EE – IO : TP 1 11

Vous aimerez peut-être aussi