Lire et écrire un fichier délimité

Description

Cette source permet de créer des fichiers délimités en définissant un format.

Une fois le format définit, il suffit de demander l'écriture de la ligne et le format est respecté. Lors de la lecture, on peut récupérer les données situées sur une ligne ou sur une colonne facilement.

Source / Exemple :


package fr.julien.definitionfichier;

import java.io.IOException;

import fr.julien.definitionfichier.exception.FormatException;
import fr.julien.definitionfichier.formatfichier.AbstractFormatFichier;
import fr.julien.gestionfichiers.GestionFichiers;

/**

  • <b>Fichier est la classe qui définit un fichier formaté</b>
  • <p>
  • Cette classe est caractérisée par les informations suivantes :
  • <ul>
  • <li>Le path vers le fichier</li>
  • <li>Le format d'écriture du fichier</li>
  • <li>Les colonnes du fichier</li>
  • </ul>
  • </p>
  • <p>
  • De plus, cette classe permet de lire et d'écrire les données du fichier
  • </p>
  • @author Julien
  • @version 1.0
*
  • /
public class Fichier { /**
  • Le path vers le fichier
  • /
private String path; /**
  • Le format d'écriture du fichier
  • /
private AbstractFormatFichier format; /**
  • Les colonnes du fichier
  • /
private Colonne[] colonnes; /**
  • <b>Constructeur de Fichier</b>
  • @param path
  • Le path vers le fichier
  • @param format
  • Le format du fichier
  • @param colonnes
  • Les colonnes du fichier
  • /
public Fichier(String path, AbstractFormatFichier format, Colonne[] colonnes) { this.path = path; this.format = format; this.colonnes = colonnes; } /**
  • Fonction qui permet d'ajouter une ligne dans le fichier
  • @param ligne
  • La ligne à ajouter
  • @return vrai si tout s'est exécuté normalement
  • @throws FormatException
  • Si le format de la ligne n'est pas le bon
  • @throws IOException
  • Si le fichier n'a pas été trouvé
  • /
public boolean ajouterLigne(String[] ligne) throws FormatException, IOException{ boolean res=false; if(ligne.length!=colonnes.length){ throw new FormatException("Nombre de valeur incorrect : "+ligne.length); } else { for(int i=0; i<colonnes.length; i++){ if(!colonnes[i].getFormat().controler(ligne[i])){ throw new FormatException("Le format de la colonne "+colonnes[i].getNom()+" est incorrect"); } } String aEnregistrer = format.formater(ligne); GestionFichiers.getInstance().append(path, aEnregistrer); } return res; } /**
  • Fonction qui permet de récupérer le contenu du fichier
  • @return les informations contenues dans le fichier
  • @throws FormatException
  • Si le format de la ligne n'est pas le bon
  • @throws IOException
  • Si le fichier n'a pas été trouvé
  • /
public LectureFichier lire() throws IOException, FormatException { return new LectureFichier(this); } /**
  • Méthode d'accès au path
  • @return le path
  • /
public String getPath() { return path; } /**
  • Méthode d'accès au format du fichier
  • @return le format d'écriture du fichier
  • /
public AbstractFormatFichier getFormat() { return format; } /**
  • Méthode d'accès aux colonnes
  • @return les colonnes du fichier
  • /
public Colonne[] getColonnes() { return colonnes; } }

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.