Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

RANDOMACCESSFILE ET BUFFEREDREADER, ECRIRE, LIRE, MODIFIER ET RECHERCHER DANS UN FICHIER


Information sur la source

Catégorie :Application Classé sous : aléatoire, random, rechercher, lire, écrire Niveau : Débutant Date de création : 31/08/2002 Date de mise à jour : 31/08/2002 19:17:30 Vu : 10 242

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

Description


 

Source

  • /*********************************************************
  • Nom du programme : ExerciceFichier.java
  • Auteur : Zufferey Matthieu
  • Date : 30.08.2002
  • Description : C'est un exercice sur les fichiers
  • Préconditions : Aucune
  • /********************************************************/
  • import java.io.* ;
  • import java.util.* ;
  • public class Exercice
  • {
  • public static void main(String[] args) throws IOException
  • {
  • File fichier = new File("employe.txt") ;
  • RandomAccessFile donnee = new RandomAccessFile(fichier, "rw") ;
  • int numero = 0 ;
  • int choix = 0 ;
  • int compteur = 1 ;
  • double moyenne = 0 ;
  • double newSalaire = 0 ;
  • boolean sortie = false ;
  • donnee.writeInt(compteur) ;
  • donnee.writeChar(' ') ;
  • donnee.writeUTF("Patolachi") ;
  • donnee.writeChar(' ') ;
  • donnee.writeUTF("Marcel") ;
  • donnee.writeChar(' ') ;
  • donnee.writeDouble(5500.00) ;
  • donnee.writeChar('\n') ;
  • BufferedReader in = new BufferedReader(new InputStreamReader(System.in)) ;
  • do
  • {
  • do
  • {
  • try
  • {
  • System.out.println("Menu") ;
  • System.out.println("====\n") ;
  • System.out.println("1. Afficher les donnees") ;
  • System.out.println("2. Calculer le salaire moyens") ;
  • System.out.println("3. Ajouter un employe") ;
  • System.out.println("4. Modifier le salaire d'un employe") ;
  • System.out.println("5. Quitter") ;
  • choix = Integer.parseInt(in.readLine()) ;
  • }
  • catch(NumberFormatException e)
  • {}
  • }
  • while(choix < 1 || choix > 5) ;
  • switch(choix)
  • {
  • case 1 :
  • {
  • System.out.println() ;
  • donnee.seek(0) ;
  • for (int i = 0 ; i < compteur ; i++)
  • {
  • try
  • {
  • System.out.print(donnee.readInt()) ;
  • System.out.print(donnee.readChar()) ;
  • System.out.print(donnee.readUTF()) ;
  • System.out.print(donnee.readChar()) ;
  • System.out.print(donnee.readUTF()) ;
  • System.out.print(donnee.readChar()) ;
  • System.out.print(donnee.readDouble()) ;
  • System.out.print(donnee.readChar()) ;
  • }
  • catch(EOFException e)
  • {}
  • }
  • System.out.println() ;
  • }
  • break ;
  • case 2 :
  • {
  • System.out.println() ;
  • moyenne = 0 ;
  • donnee.seek(0) ;
  • for (int i = 0 ; i < compteur ; i++)
  • {
  • try
  • {
  • donnee.readInt() ;
  • donnee.readChar() ;
  • donnee.readUTF();
  • donnee.readChar() ;
  • donnee.readUTF() ;
  • donnee.readChar() ;
  • moyenne += donnee.readDouble() ;
  • donnee.readChar() ;
  • }
  • catch(EOFException e)
  • {}
  • }
  • System.out.println("La moyenne des salaires est de : " + (moyenne/compteur)) ;
  • System.out.println() ;
  • }
  • break ;
  • case 3 :
  • {
  • System.out.println() ;
  • donnee.seek(donnee.length()) ;
  • compteur += 1 ;
  • try
  • {
  • donnee.writeInt(compteur) ;
  • donnee.writeChar(' ') ;
  • System.out.println("Entrez le nom du nouvel employe") ;
  • donnee.writeUTF(in.readLine()) ;
  • donnee.writeChar(' ') ;
  • System.out.println("Entrez le prenom du nouvel employe") ;
  • donnee.writeUTF(in.readLine()) ;
  • donnee.writeChar(' ') ;
  • System.out.println("Entrez le salaire du nouvel employe") ;
  • donnee.writeDouble(Double.parseDouble(in.readLine())) ;
  • donnee.writeChar('\n') ;
  • }
  • catch(EOFException e)
  • {}
  • System.out.println() ;
  • }
  • break ;
  • case 4 :
  • {
  • System.out.println() ;
  • donnee.seek(0) ;
  • do
  • {
  • System.out.println("Entrez le numero de l'employe a qui vous voulez change le salaire") ;
  • numero = Integer.parseInt(in.readLine()) ;
  • }
  • while(numero < 0 || numero > compteur) ;
  • System.out.println("Entrez le montant du nouveau salaire") ;
  • newSalaire = Double.parseDouble(in.readLine()) ;
  • int numDonnee = 0 ;
  • try
  • {
  • for (int i = 0 ; i < compteur ; i++)
  • {
  • numDonnee = donnee.readInt() ;
  • if(numero == numDonnee)
  • {
  • donnee.readChar() ;
  • donnee.readUTF() ;
  • donnee.readChar();
  • donnee.readUTF() ;
  • donnee.readChar() ;
  • donnee.writeDouble(newSalaire) ;
  • donnee.readChar() ;
  • }
  • else
  • {
  • donnee.readChar() ;
  • donnee.readUTF() ;
  • donnee.readChar();
  • donnee.readUTF() ;
  • donnee.readChar() ;
  • donnee.readDouble() ;
  • donnee.readChar() ;
  • }
  • }
  • }
  • catch(EOFException e)
  • {}
  • System.out.println() ;
  • }
  • break ;
  • case 5 :
  • {
  • System.out.println() ;
  • sortie = true ;
  • }
  • break ;
  • }
  • }
  • while(sortie != true) ;
  • System.exit(0) ;
  • }
  • }
/*********************************************************

	Nom du programme :	ExerciceFichier.java
	Auteur :			Zufferey Matthieu
	Date :				30.08.2002
	Description :		C'est un exercice sur les fichiers
	Préconditions :		Aucune


/********************************************************/

import java.io.* ;
import java.util.* ;

public class Exercice
	{
	public static void main(String[] args) throws IOException
		{
		File fichier = new File("employe.txt") ;

		RandomAccessFile donnee = new RandomAccessFile(fichier, "rw") ;
		int numero = 0 ;
		int choix = 0 ;
		int compteur = 1 ;
		double moyenne = 0 ;
		double newSalaire = 0 ;
		boolean sortie = false ;
		
		donnee.writeInt(compteur) ;
		donnee.writeChar(' ') ;
		donnee.writeUTF("Patolachi") ;
		donnee.writeChar(' ') ;
		donnee.writeUTF("Marcel") ;
		donnee.writeChar(' ') ;
		donnee.writeDouble(5500.00) ;
		donnee.writeChar('\n') ;
		
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in)) ;
		

		
		do
			{		
			do
				{
				try
					{
					System.out.println("Menu") ;
					System.out.println("====\n") ;
					System.out.println("1. Afficher les donnees") ;
					System.out.println("2. Calculer le salaire moyens") ;
					System.out.println("3. Ajouter un employe") ;
					System.out.println("4. Modifier le salaire d'un employe") ;
					System.out.println("5. Quitter") ;		
					choix = Integer.parseInt(in.readLine()) ;
					}
				catch(NumberFormatException e)
					{}
				}
			while(choix < 1 || choix > 5) ;

			switch(choix)
				{
				case 1 :
					{
					System.out.println() ;	
						
					donnee.seek(0) ;
					
					for (int i = 0 ; i < compteur ; i++)
						{
						try
							{
								System.out.print(donnee.readInt()) ;
								System.out.print(donnee.readChar()) ;
								System.out.print(donnee.readUTF()) ;
								System.out.print(donnee.readChar()) ;
								System.out.print(donnee.readUTF()) ;
								System.out.print(donnee.readChar()) ;
								System.out.print(donnee.readDouble()) ;
								System.out.print(donnee.readChar()) ;					
							}
						catch(EOFException e)
							{}
						}
										
					System.out.println() ;
					}				
				break ;
	
				case 2 :
					{
					System.out.println() ;	
					moyenne = 0 ;	
					donnee.seek(0) ;
					
					for (int i = 0 ; i < compteur ; i++)
						{
	
						try
							{
								donnee.readInt() ;
								donnee.readChar() ;
								donnee.readUTF();
								donnee.readChar() ;
								donnee.readUTF() ;
								donnee.readChar() ;
								moyenne += donnee.readDouble() ;
								donnee.readChar() ;					
							}
						catch(EOFException e)
							{}
						}
					
					System.out.println("La moyenne des salaires est de : " + (moyenne/compteur)) ;
										
					System.out.println() ;
					}				
				break ;
	
				case 3 :
					{
					System.out.println() ;	
						
					donnee.seek(donnee.length()) ;
					compteur += 1 ;
					
					try
						{
							donnee.writeInt(compteur) ;
							donnee.writeChar(' ') ;
							System.out.println("Entrez le nom du nouvel employe") ;
							donnee.writeUTF(in.readLine()) ;
							donnee.writeChar(' ') ;
							System.out.println("Entrez le prenom du nouvel employe") ;
							donnee.writeUTF(in.readLine()) ;
							donnee.writeChar(' ') ;
							System.out.println("Entrez le salaire du nouvel employe") ;
							donnee.writeDouble(Double.parseDouble(in.readLine())) ;
							donnee.writeChar('\n') ;					
						}
					catch(EOFException e)
						{}
										
					System.out.println() ;
					}				
				break ;

				case 4 :
					{
					System.out.println() ;	
						
					donnee.seek(0) ;
					
					do
						{
						System.out.println("Entrez le numero de l'employe a qui vous voulez change le salaire") ;
						numero = Integer.parseInt(in.readLine()) ;
						}
					while(numero < 0 || numero > compteur) ;
					
					System.out.println("Entrez le montant du nouveau salaire") ;
					newSalaire = Double.parseDouble(in.readLine()) ;
					
					int numDonnee = 0 ;
					
					try
						{
						for (int i = 0 ; i < compteur ; i++)
							{
							numDonnee = donnee.readInt() ;	
									
							if(numero == numDonnee)
								{
								donnee.readChar() ;
								donnee.readUTF() ;
								donnee.readChar();
								donnee.readUTF() ;
								donnee.readChar() ;
								donnee.writeDouble(newSalaire) ;
								donnee.readChar() ;	
								}
							else
								{
								donnee.readChar() ;
								donnee.readUTF() ;
								donnee.readChar();
								donnee.readUTF() ;
								donnee.readChar() ;
								donnee.readDouble() ;
								donnee.readChar() ;								
								}	
							}			
						}
					catch(EOFException e)
						{}
										
					System.out.println() ;
					}				
				break ;
				
				case 5 :
					{
					System.out.println() ;	
					sortie = true ;	
					}				
				break ;	
				
				}
			}
		while(sortie != true) ;
	

		System.exit(0) ;	
		}
	}

Commentaires et avis

signaler à un administrateur
Commentaire de spidermax55 le 23/07/2003 15:47:12

Dans ton code, ta méthode double.parseDouble ne fonctionnne pas chez moi, il faut plutot mettre Double.parseDouble !! C'est intéressant comme programme, puisque j'essaye en ce moment d'es faire un comme ça, mais dans une interface graphique.Au lieu d'un randomAccessFile, j'ai essayé avec un File et un objet Vector, qui marche à moitié...Est ce que ton code permet de modifier aussi le nom et le prénom ?

signaler à un administrateur
Commentaire de polz le 26/07/2003 13:39:44

Ben en fait, tu reprends juste la méthode de modification du salaire et tu y changes les paramètres. Sinon, il y a un autre moyen qui consiste à écrire un objet dans un fichier (ca peut etre un vecteur ou autre chose). Si tu veux, je peux t'envoyer un code

signaler à un administrateur
Commentaire de spidermax55 le 28/07/2003 10:25:04

J'ai un problème avec cette classe Exercice, vu que je voudrais conserver le fichier dans lequel on a ajouté des éléments, alors que tu crées un nouveau fichier à chaque fois. N'y a-t-il pas un moyen de remédier à ce problème, tout en gardant un RandomAccessFile? J'ai essayé avec un FileInputstream, mais c'est pas compatible, malheureusement... Merci de ton aide

signaler à un administrateur
Commentaire de waddle le 25/11/2004 10:54:48

ouais...enfin c de C quoi....t'as le droit de faire de l'objet aussi avec un langage objet....

waddle

--
EPITA Student
Promo 2006

signaler à un administrateur
Commentaire de indo__ le 29/11/2004 02:55:47

c tres procedural :)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

lire et écrire dans un fichier texte [ par elmoudene ] bonjour, tout d'abors je suis qu'un débutant en JAVA, et j'aimerai bien que vous m'aider a faire un petit programme qui me permet d'ecrire et lire dan lire et écrire une matrice ligne par ligne dans un fichier texte en java [ par hibaw ] bonjour a tous,je cherche comment  dans un code_source je dois écrire (c à dire enregistrer) une matrice de réel exemple : mat =[ 0   1.2   3    4;    La Classe Scanner [ par SirShinobi ] Salut,J'ai lu les anciens sujets et je n'ai pas trouvé une réponse clair à ma question.Je veux savoir comment utiliser la classe scanner :-Pour lire u Math.random() en java [ par nicegirle ] bnjr , svp je suis entrain de developper une applet ,contenant un cerle qui se deplace dans mon applet tout en changeant  le rayon, le problème c est lire un fichier texte à partire d'une ligne précice . [ par mermad ] Bonjour tout le monde,je sais comment lire un fichier texte en java mais je ne sais pas comment lire à partir d'une ligne précise, la dixième ligne pa Lire le contenu d'un pdf (contenant un code barre) avec itext [ par byob ] Bonjour, j'ai utilisé la lib d'itext pour creer un pdf avec un code barre : Document document = this.barCode.getDocument();            PdfWriter write lire et ecrire dans fichier texte en java [ par saif87 ] Bonjour,je veut une aide a propos des fichier en java je veut sauvegarder mon travail dans un fichierexemple l'utilisateur entre le nom ,prénom,age... lire ligne par ligne le contenu d'un JTextArea [ par bilal86 ] Bonjour j'ai quelque questions , comme le titre indiqué, quand j'ai fait la recherche sur internet ils disent que pour récupérer le contenu d'une seul Départ d'une application [ par chris081 ] Bonjour Je suis relativement nouveau comparé à ce que j'ai pu lire comme réponses sur ce site. Je voudrais savoir si c'est possible de faire une appi


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.