1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184
|
import java.io.*;
import java.util.*;
/** Classe pour la manipulation rapide de fichier.
* @author Johann Sorel
*/
public class FastFile {
private static InputStream ips;
//private static OutputStream out;
/** Ignore les lignes commencant par # ou / et les lignes vides
* @param adresse : chemin du fichier
* @return une Arraylist avec chaine par ligne du fichier
* @throws FileNotFoundException
* @throws IOException
*/
public static ArrayList<String> Read (String adresse) throws FileNotFoundException,IOException{
ArrayList<String> str = new ArrayList<String>();
ips = new FileInputStream(adresse);
InputStreamReader ipsr = new InputStreamReader(ips);
BufferedReader br = new BufferedReader(ipsr);
String l;
char ch1 = '/';
char ch2 = '#';
while ( (l = br.readLine()) != null) {
if ( l.length()>0 ){
if (l.charAt(0) != ch1 && l.charAt(0) != ch2)str.add(l);
}
}
br.close();
ips.close();
return(str);
}
/** Permet de recupérer un objet sérializé.
* @param adresse : chemin du fichier
* @return retourne l'objet contenu dans le fichier
* @throws FileNotFoundException
* @throws IOException
* @throws ClassCastException
* @throws ClassNotFoundException
*/
public static Object ReadObjet(String adresse) throws FileNotFoundException,IOException,ClassCastException,ClassNotFoundException{
FileInputStream fileIn = new FileInputStream(adresse);
ObjectInputStream in = new ObjectInputStream(fileIn);
Object o = in.readObject();
return o;
}
/** Permet de recupérer la chaine equivalante dans un fichier.
*
* exemple de ligne dans le fichier : nom=Robert
* FastFile.ReadValue("x.txt","nom"); retourne "Robert"
* @param adresse : chemin du fichier
* @param nomparam
* @return retourne la chaine qui correspond au nom
* @throws FileNotFoundException
* @throws IOException
*/
public static String ReadValue(String adresse, String nomparam) throws FileNotFoundException,IOException{
String str = "";
ips = new FileInputStream(adresse);
InputStreamReader ipsr = new InputStreamReader(ips);
BufferedReader br = new BufferedReader(ipsr);
String l;
char ch1 = '/';
char ch2 = '#';
//tant qu'il y a des lignes
while ( (l=br.readLine()) != null) {
//si la ligne contient quelquechose
if ( l.length()>0 ){
//si ce n'est pas un commentaire et si ca correspond a la variable recherche
if (l.charAt(0) != ch1 && l.charAt(0) != ch2 && l.subSequence(0,l.indexOf("=")).equals(nomparam) ){
str = l.substring(l.indexOf("=")+1,l.length());
}
}
}
br.close();
ips.close();
return(str);
}
/** Permet de recupérer la chaine equivalante dans un fichier.
*
* exemple de ligne dans le fichier : nom=Robert
* FastFile.ReadValue("x.txt","nom"); retourne "Robert"
* @param flux : flux du fichier
* @param nomparam
* @return retourne la chaine qui correspond au nom
* @throws FileNotFoundException
* @throws IOException
*/
public static String ReadValue(InputStream flux, String nomparam) throws FileNotFoundException,IOException{
String str = "";
InputStreamReader ipsr = new InputStreamReader(flux);
BufferedReader br = new BufferedReader(ipsr);
String l;
char ch1 = '/';
char ch2 = '#';
//tant qu'il y a des lignes
while ( (l=br.readLine()) != null) {
//si la ligne contient quelquechose
if ( l.length()>0 ){
//si ce n'est pas un commentaire et si ca correspond a la variable recherche
if (l.charAt(0) != ch1 && l.charAt(0) != ch2 && l.subSequence(0,l.indexOf("=")).equals(nomparam) ){
str = l.substring(l.indexOf("=")+1,l.length());
}
}
}
br.close();
ips.close();
return(str);
}
/** Permet d'ecrire une liste de chaine dans une fichier.
* @param adresse : adresse d'ecriture
* @param val : liste de chaine a ecrire (une par ligne)
* @throws IOException
*/
public static void Write (String adresse,List<String> val) throws IOException{
int I;
FileWriter fw = new FileWriter(adresse, false);
BufferedWriter output = new BufferedWriter(fw);
for (I=0;I<val.size();I++){
output.write(val.get(I));
output.flush();
}
fw.close();
output.close();
}
/** Permet d'ecrire un Objet.
* @param adresse : chemin du fichier
* @param O : objet a ecrire
* @throws FileNotFoundException
* @throws IOException
*/
public static void WriteObject(String adresse, Object O) throws FileNotFoundException,IOException{
FileOutputStream fileOut = new FileOutputStream(adresse);
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(O);
out.close();
fileOut.close();
}
} |
Partager