Accueil

Web

FaceBook

Telechargement

Contact

 

Ajouter aux Favoris

    Bienvenue ! 29/03/2024 @ 14:48:10 - IP : 3.81.139.99 -



Les cours du langage Java - ZNsoft Tutorial
 




 

Microsoft

Télécharger

SQL Server 2012

Pinpoint

Visual Studio

Choisir son PC

 
 

Developpement

Visual Basic

Langage C

Java

Assembleur

Delphi

SQL

Python

WinDev

 
 

Systèmes OS

Ms Dos

Windows 9.x

Windows Nt

Windows Vista

Unix

Linux

Mac Os

 
 

Conception Web

PHP

ASP

Html

XmL

Flash Adobe

Director Adobe

WebDev

Java Script

 




Livre GRATUIT:
Livre gratuit pour maitriser Google Docs



 
 

 

Sommaire :

Introduction - Les caractéristiques - Les concepts de base - Instruction /Opérateurs- Entrées/Sorties

Les entrées / sorties en langage Java

 

Cours du langageJava pour les débutants

 

 

Les entrées/Sorties :

 

Développer et déployer facilement vos sites web

Télécharger gratuitement Office 2013

Héberger votre site web sur des serveurs gratuits

Visual Studio 2013

Télécharger et apprenez gratuitement

Trucs et Astuces

Découvrez Windows 8.1 et télécharger le gratuitement

 

Les opérations d'entrée sont toutes définies à partir de deux classes abstraites : InputStream et Reader. InputStream permet de lire un flux d'octets provenant d'une source quelconque et Reader un flux de caractères. De la même manière, les sorties sont effectuées à partir de deux classes abstraites : OutputStream et Writer.

Deux exemples concrets sont fournis : entrées/sorties clavier-écran et dans un fichier. Pour plus de précision, se reporter à java.io et aux nombres classes spécialisées qui s'y trouvent.

Affichage à l'écran :

La classe System possède le stream de sortie standard appelé simplement : out. Il est possible d'afficher directement toute variable d'un type de base en le passant en paramètre de la fonction print ou println (passage à la ligne après affichage).

Pour un objet, l'affichage peut être effectué grâce à la méthode toString () définie dans la classe Object. Si la méthode ne convient pas il faut la redéfinir dans la classe que l'on désire afficher. Toute classe héritant de la classe Object, l'affichage d'une structure polymorphe se fera sans problème. Pour afficher avec un seul appel plusieurs entités, il faut les préciser, dans l'ordre d'affichage, simplement séparées par un + (symbole de concaténation).

System.out.print ("un certain texte " + unEntier + " ou " + unFloat + " ou " + unObjet.toString ());

Lecture au clavier :

Illustré à partir d'un exemple qui montre l'usage que l'on peut faire des classes de java.io et java.lang.System. La classe System possède le stream d'entrée standard appelé simplement : in.

Il est utilisé pour instancier la classe InputStreamReader qui va récupérer les entrées clavier. L'instance ainsi créée (bien que n'ayant pas été stockée dans une variable d'instance) va être utilisée pour créer une instance de BufferedReader qui va stocker dans un buffer les entrées clavier. Il est possible de créer une instance "virtuelle", dont la référence n'est pas stockée pour être ensuite explicitement libérée, grâce au garbage collector qui assure la libération de la place mémoire allouée dès que la référence n'est plus utilisée .

import java.io.* ;

import java.lang.*;

public class lecture

{

public static void main(String[] args)

// la méthode main est susceptible d'avoir à transmettre une exception de type IOException

// qu'elle ne va pas récupérer pour la traiter elle même. Elle doit donc le signaler.

throws java.io.IOException

{

// L'instance myInput sait lire au clavier et stocker les informations lues.

// pour pouvoir lire au clavier, il faut instancier l' InputStream avec System.in

// (entrée standard) et instancier BufferedReader avec l' InputStream pour

// pouvoir saisir plus d'un caractère.

BufferedReader myInput=new BufferedReader(new InputStreamReader(System.in));

// Toute saisie est stockée dans un String.

String c=new String();

// Résultat final souhaité pour la saisie.

int resultat = 0;

float autre = 0;

// Programme de lecture, version explicite : à préférer

// récupération de l'entrée clavier dans un String qui sert ici de buffer d'entrée

c = myInput.readLine();

// la chaîne est convertie en Integer (instance de la classe prédéfinie Integer)

// dont on extrait ensuite la valeur entière de type de base int

resultat = Integer.valueOf(c).intValue();

// récupération de l'entrée clavier dans un String qui sert ici de buffer d'entrée

c = myInput.readLine();

// la chaîne est convertie en Float (instance de la classe prédéfinie Float)

// dont on extrait ensuite la valeur réelle de type de base float

autre = Float.valueOf(c).floatValue();

// DEBUG : affichage du résultat pour contrôle

System.out.println("resultat " + resultat + " " + autre);

// Programme de lecture version condensée, pas toujours souhaitable.

resultat = Integer.parseInt(myInput.readLine());

autre = Float.valueOf(myInput.readLine()).floatValue();

// DEBUG : affichage du résultat pour contrôle

System.out.println("resultat " + resultat + " " + autre);

}

}

Entrées/Sorties dans un fichier :

Démonstration par l'exemple :

Voici une classe qui va écrire dans un fichier une structure de données (ici une liste implantée dans un Vector) et la récupérer.

import java.io.*;

public class ListeStockable extends Liste // implantée à partir d'un Vector

{

// constructeur

ListeStockable ()

{

super ();

}

// pour écrire une liste dans un fichier

public void writeOnFile (String dest_name)

throws IOException

{

File destination_file = new File(dest_name); // création du fichier d'écriture

FileOutputStream ostream = null; // déclaration du flux de sortie dans un fichier

ObjectOutputStream oos; // déclaration du flux de sortie d'un Object

int j;

try

{

if (destination_file.exists())

{

if (destination_file.isFile())

{

// pour l'entrée au clavier de la réponse

BufferedReader myInput =

new BufferedReader(new InputStreamReader(System.in));

String reponse = new String ();

if (!destination_file.canWrite())

throw new FileRWException("FileCopy: fichier destination " +

"inaccessible en écriture: " + dest_name);

System.out.print("Fichier " + dest_name +

" déjà existant. Peut-on écraser son contenu ? (Y/N): ");

System.out.flush();

reponse = myInput.readLine();

if (!reponse.equals("Y") && !reponse.equals("y"))

throw new FileRWException("FileCopy: fichier écrasé.");

} else

throw new FileRWException("FileCopy: destination "

+ "n'est pas un fichier: " + dest_name);

}

// Tout est ok, on peut écrire dans le fichier

// on ouvre le flux d'écriture dans le fichier

ostream = new FileOutputStream(destination_file);

// on précise que les données seront des Object

oos = new ObjectOutputStream(ostream);

for (j=0 ; j < taille ; j++) // on écrit les Object dans le fichier un après l'autre

oos.writeObject(ith(j));

// placer dans le fichier un Object null pour signaler la fin

oos.writeObject(null);

}

// Quoiqu'il arrive, toujours fermer le fichier

finally

{

if (ostream != null)

try { ostream.close(); } catch (IOException e) { ; }

}

}

// pour lire une liste depuis un fichier

public void readFromFile (String source_name)

throws IOException, ClassNotFoundException

{

File source_file = new File(source_name); // création du fichier en lecture

FileInputStream istream = null; // déclaration du flux d'entrée depuis un fichier

ObjectInputStream ois; // déclaration du flux d'entrée d'un Object

int j;

Object t;

boolean termine = false;

try

{

// le fichier en lecture existe t'il avec les bons droits d'accès

if (!source_file.exists() || !source_file.isFile())

throw new FileRWException("FileCopy: fichier source inexistant: " +

source_name);

if (!source_file.canRead())

throw new FileRWException("FileCopy: fichier source non accessible en lecture " +

source_name);

// tout est OK on peut lire le fichier

// ouverture du flux d'entrée depuis le fichier

istream = new FileInputStream(source_file);

// on précise que les données lues seront des Object

ois = new ObjectInputStream (istream);

while (!termine)

{

t = ois.readObject();

if (t == null)

termine = true;

else

putLast(t);

}

}

// toujours fermer le fichier

finally

{

if (istream != null)

try { istream.close(); } catch (IOException e) { ; }

}

}

}

// permet de créer sa propre exception accompagnée d'un message

class FileRWException extends IOException

{ public FileRWException(String msg) { super(msg); } }



Déposez votre CV
lien de téléchargement direct
50 tirages offerts à l'inscription chez myPIX.com!
Dépot de CV gratuit sur Touslesemplois
Logiciel de référencement automatique

Devenez membre ZNsoft : La communauté Informatique

Cours -  Etudiants -  Concours -  Congrès -  Téléchargement -  Formations


_________________________________________________________________________________________________________
Qui sommes-nous ? | Contact | | Inviter un ami | Soutenir ZNsoft | Revue de press | Références
ZNsoft Corporation, Tous Droits Réservés © 2002/ 2024 ZNsoft RSS
  Dernière mise à jour : 26/03/2024