IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Sommaire > Flux, fichiers et réseaux > Flux et fichiers
        Lecteur de fichier .INI
        Compression Zip
        Renommage massif
        Lecture de fichier CSV
        Cacher le password en ligne de commande
        Compter le nombre de fichiers dans un repertoire et afficher le nombre de ligne par fichier
        Lister un répertoire
        Fonctions utilitaires de manipulation de File
        Copie de fichier avec NIO
        Parcours récursif d'une arborescence
        Accéder à des ressources dans un fichier d'archive JAR
        Compression ZIP et GZIP, avec gestion des répertoires
        OutilsString - Formatage de n° de téléphone, sansAccents...

        


Auteur : bulbo
Version : 01/08/2004
Téléchargez le zip
Lecteur de fichier .INI
Classe permettant la lecture (pas l'écriture) d'un fichier .INI.
Les espaces sont tolérés entre la clé et le =, et à l'intérieur de la valeur. Les lignes commençant par un ; sont considérées comme des commentaires ..
Toutes les valeurs doivent appartenir à une section


Auteur : cyberzoide
Version : 06/08/2004
Téléchargez le zip
Compression Zip
Compression des fichiers du répertoire courant dans une archive Zip


Auteur : cyberzoide
Version : 06/08/2004
Téléchargez le zip
Renommage massif
Renommer automatiquement un grand nombre de fichiers situés dans des sous répertoires et aplanir leur arborescence.
Exemple : mon appareil photo numérique crée un nouveau répertoire à chaque fois que je le mets en marche et remet à zéro le compteur de nommage des images. Je me retrouve avec 50 dossiers ayant chacun des images du même nom.
Ce programme résoud le problème et les copie toutes dans le répertoire courant.


Auteur : Glob
Version : 06/08/2004
Téléchargez le zip
Lecture de fichier CSV
Permet de lire un fichier CSV et d'obtenir les valeurs des cellules.
Possibilité d'écrire également... (à partir d'un fichier pré-existant uniquement).
Possibilité de spécifier le caractère de séparation à la compilation...
Pas de contructeur par défaut. Si des caractères de séparation se trouvent dans les données, ce n'est pas géré (d'où la possibilité de spécifier le caractère, y'en a bien un qui conviendra...)

Utilisation :

CSVFile monFichier = new CSVFile("C:\\youplaboum.csv"); String valeur = monFichier.getData(3, 5); monFichier.setData(6,1, "Nouvelle valeur"); monFichier.write("C:\\toto.csv"); monFichier = null;

Auteur : Stessy
Version : 17/08/2004
Téléchargez le zip
Cacher le password en ligne de commande
Cette classe permet de remplacer chaque caractère alphanumérique du password par le signe "*".


Version : 16/09/2004
Compter le nombre de fichiers dans un repertoire et afficher le nombre de ligne par fichier
Cette classe permet de compter le nombre de fichiers contenus dans un répertoire et d'afficher par la suite le nombre de lignes contenues dans chaque fichier

import java.io.*; public class LineCount { static public void main(String args[]) throws Exception { //Change the directory where the count files are existing File di = new File("c:/count"); File fl[] = di.listFiles(); int j; int count=0; String str=""; String totalinfo=""; for (j=0; j < fl.length; j++) { System.out.println(""+fl[j]); FileInputStream fis = new FileInputStream(fl[j].getCanonicalFile()); LineNumberReader l = new LineNumberReader(new BufferedReader(new InputStreamReader(fis))); while ((str=l.readLine())!=null) { count = l.getLineNumber(); } System.out.println(count); String filename = fl[j].getName().toString(); totalinfo = filename+"-------------"+count; FileOutputStream file = new FileOutputStream("c:/one.txt",true); //append PrintStream printtofile = new PrintStream(file); printtofile.println(totalinfo); printtofile.close(); file.close(); } } }

Version : 16/09/2004
Lister un répertoire
Cette classe permet de lister les fichiers ainsi que les sous-répertoires contenus dans un répertoire.

public static void main(String args[]){ try{ File dir = new File("d:\\temp"); String[] children = dir.list(); if (children == null) { System.out.println("Directory does not exist or is not a Directory"); } else { for (int i=0; i // Get filename of file or directory String filename = children[i]; System.out.println(filename); } } // It is also possible to filter the list of returned files. // This example does not return any files that start with `.'. FilenameFilter filter = new FilenameFilter() { public boolean accept(File dir, String name) { return !name.startsWith("."); } }; children = dir.list(filter); // The list of files can also be retrieved as File objects File[] files = dir.listFiles(); // This filter only returns directories FileFilter fileFilter = new FileFilter() { public boolean accept(File file) { return file.isDirectory(); } }; files = dir.listFiles(fileFilter); } catch (Exception ioe){ ioe.printStackTrace(); } }

Auteur : ptitom
Version : 15/01/2005
Fonctions utilitaires de manipulation de File
/* * FileUtility * @author P. Thomas * ----------------------------------------------------------------------------- Description Les quatres principales methodes de cette classe utilitaire permet : - de calculer un chemin relatif à partir d'un répertoire de référence et du répertoire à relativiser - de supprimer récursivement des répertoires - de copier un fichier - de créer un fichier à un emplacement précis avec un nom défini à l'aide d'un pattern du type "Out-{0,number,#000}.tmp" [Cf. MessageFormat] ----------------------------------------------------------------------------- */ package AltaOcas.Util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.text.MessageFormat; import java.util.ArrayList; import javax.swing.JFileChooser; public class FileUtility { protected static String getPrimaryPath(File ref, File access) { String path = ""; ArrayList refp = new ArrayList(); for (File cur = ref; cur != null; cur = cur.getParentFile()) { String name = cur.getName(); if (name.length() == 0) name = cur.getAbsolutePath(); refp.add(name); //System.out.println("Ref : '" + name + "'"); } ArrayList accp = new ArrayList(); for (File cur = access; cur != null; cur = cur.getParentFile()) { String name = cur.getName(); if (name.length() == 0) name = cur.getAbsolutePath(); accp.add(name); //System.out.println("Acc : '" + name + "'"); } if (refp.size() == 0 || accp.size() == 0) return path; if (refp.get(refp.size()-1).equals(accp.get(accp.size()-1))) { boolean equal = true; while (equal && refp.size() > 1 && accp.size() > 1) { refp.remove(refp.size()-1); accp.remove(accp.size()-1); equal = (refp.get(refp.size()-1).equals(accp.get(accp.size()-1))); } if (refp.size() == 1) { if (!equal) { refp.remove(refp.size()-1); path += ".." ; } else { refp.remove(refp.size()-1); accp.remove(accp.size()-1); path += "."; } } else { if (equal && accp.size() == 1) { refp.remove(refp.size()-1); accp.remove(accp.size()-1); } while (refp.size() > 0) { refp.remove(refp.size()-1); path += ".." ; if (refp.size() > 0) path += File.separator; } } while (accp.size() > 0) { String name = (String)accp.remove(accp.size()-1); path += File.separator; path += name; } } else { try { path = access.getCanonicalPath(); } catch (IOException e) { path = access.getAbsolutePath(); e.printStackTrace(); } } return path; } public static String getDiffPath(File ref, File acc) { try { File cref = ref.getCanonicalFile(); File cacc = acc.getCanonicalFile(); return getPrimaryPath(cref, cacc); } catch (IOException e) { e.printStackTrace(); return getPrimaryPath(ref, acc); } } public static String getDiffPath(String ref, String acc) { File fref = new File(ref); File facc = new File(acc); return getDiffPath(fref, facc); } public static void main(String[] args) { JFileChooser dlg = new JFileChooser(); dlg.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); while (true) { if( dlg.showOpenDialog(null) == JFileChooser.CANCEL_OPTION) return; File first = dlg.getSelectedFile(); if (first == null) return; if( dlg.showOpenDialog(null) == JFileChooser.CANCEL_OPTION) return; File last = dlg.getSelectedFile(); if (last == null) return; System.out.println("First Path : " + first.getPath()); System.out.println("Last Path : " + last.getPath()); System.out.println("First Name : " + first.getName()); System.out.println("Last Name : " + last.getName()); System.out.println("First AbsolutePath : " + first.getAbsolutePath()); System.out.println("Last AbsolutePath : " + last.getAbsolutePath()); System.out.println("Diff PrimaryPath : " + getPrimaryPath(first, last)); System.out.println("--------------------------------------------------\n"); } } public static void recursifDelete(File path) throws IOException { if (!path.exists()) throw new IOException( "File not found '" + path.getAbsolutePath() + "'"); if (path.isDirectory()) { File[] children = path.listFiles(); for (int i=0; children != null && i<children.length; i++) recursifDelete(children[i]); if (!path.delete()) throw new IOException( "No delete path '" + path.getAbsolutePath() + "'"); } else if (!path.delete()) throw new IOException( "No delete file '" + path.getAbsolutePath() + "'"); } public static void copyFile(File src, File dest) throws IOException { if (!src.exists()) throw new IOException( "File not found '" + src.getAbsolutePath() + "'"); BufferedOutputStream out = new BufferedOutputStream( new FileOutputStream(dest)); BufferedInputStream in = new BufferedInputStream( new FileInputStream(src)); byte[] read = new byte[128]; int len = 128; while ((len = in.read(read)) > 0) out.write(read, 0, len); out.flush(); out.close(); in.close(); } public static File createSpecifiedFile(String path, String pattern, int base) { File file = new File(path); if (!file.isDirectory()) return null; for (int cur = base; ; cur++) { Object[] args = {new Integer(cur)}; String result = MessageFormat.format(pattern, args); file = new File(path, result); if (!file.exists()) return file; } } }

Auteur : divxdede
Version : 15/01/2005
Copie de fichier avec NIO
Salut, concernant la copie de fichier, il peut être interressant d'utiliser les Channels de J2SE 1.4 en utilisant ce genre de code

public static void copyFile(File src, File dest) throws IOException { FileInputStream fis = new FileInputStream(src); FileOutputStream fos = new FileOutputStream(dest); java.nio.channels.FileChannel channelSrc = fis.getChannel(); java.nio.channels.FileChannel channelDest = fos.getChannel(); channelSrc.transferTo(0, channelSrc.size() , channelDest); fis.close(); fos.close(); }

Auteur : Michel Deriaz
Version : 15/02/2005
Parcours récursif d'une arborescence
La méthode getFilesRec() permet de parcourir récursivement toute une arborescence et remplit une ArrayList avec les fichiers trouvés. Les autres méthodes de la classe ShowFiles sont uniquement là pour tester la méthode getFileRec().

// Updates: 2004.09.27 import java.io.*; import java.util.*; public class ShowFiles { public ShowFiles() { ArrayList allFiles = new ArrayList(); getFilesRec(allFiles, "."); for (int i = 0; i < allFiles.size(); i++) { System.out.println(allFiles.get(i)); } } public static void main(String[] args) { new ShowFiles(); } private void getFilesRec(ArrayList allFiles, String root) { File f = new File(root); File[] listFiles = f.listFiles(); for (int i = 0; i < listFiles.length; i++) { if (listFiles[i].isDirectory()) getFilesRec(allFiles, listFiles[i].toString()); else allFiles.add(listFiles[i].toString()); } } }

Auteur : Michel Deriaz
Version : 15/02/2005
Accéder à des ressources dans un fichier d'archive JAR
Ces bouts de codes permettent d'accéder à des ressources qui se trouvent dans le même fichier jar que l'application qui les sollicite

// Lire un fichier de propriétés se trouvant dans le fichier jar de l'application Properties props = new Properties(); props.load(ClassLoader.getSystemResourceAsStream("Records.properties")); // Lire un fichier texte se trouvant dans le fichier jar de l'application private String readFile(String filename) { try { DataInputStream dis = new DataInputStream(ClassLoader.getSystemResourceAsStream(filename)); byte[] data = new byte[dis.available()]; dis.readFully(data); dis.close(); return (new String(data)); } catch (IOException ioe) { System.out.println(ioe); } return ""; } // Changer l'icône d'une JFrame lorsque l'image à afficher se trouve dans le // fichier jar de l'application JFrame f = new JFrame(); f.setIconImage(new ImageIcon(getClass().getResource("icon.png")).getImage());

Auteur : iubito
Version : 11/06/2005
Téléchargez le zip
Compression ZIP et GZIP, avec gestion des répertoires
Cette classe complète le code fournit par Cyberzoïde, son tuto m'a aidé, et je l'en remerci. Mais voilà, ma classe permet de gérer les arborescences dans la compression et la décompression.


Auteur : iubito
Version : 11/06/2005
Téléchargez le zip
OutilsString - Formatage de n° de téléphone, sansAccents...
Le formatage de numéros de téléphones... :
Il permet d'uniformiser des numéros qui se retrouvent avec des séparations (espaces, point, -) ou sans séparation, les numéros internationaux (+34... ou 0034... entre parenthèses)

isNumeroTelValide test si après formatage, le numéro est correct pour être numérotable -en appelant formatTelSansPoints- par un serveur de fax par exemple.

sansAccent
Une fonction est déjà proposée dans les codes sources java, celle-ci est plus simple (une ligne). ça se trouve elle provient de la FAQ Java... je sais plus où j'ai vu le code traîner, donc je le partage


        

Tous les codes sources fournis gratuitement ici sont soumis à la licence GNU LGPL traduite en français ici. Par contre, la page de présentation constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2004 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.