static private void remplire(File fichier, Hashtable hash, int taillePieces){
	String key = FileHashSum.sha1sum(fichier) ;
	Fichier element = new Fichier(fichier.getName(), key, fichier.length() , taillePieces) ; // *TODO* la clé n'est pas la bonne
	int taille;
	File fichierCache = new File("Download/."+fichier.getName()) ;
	boolean [] masque = null;
	// Si le fichier caché existe on récupère le masque
	if (fichierCache.exists()){
	    try {
		RandomAccessFile raf_fichierCache = new RandomAccessFile(fichierCache,"r") ;
		String strMasque = raf_fichierCache.readLine() ;
				
		masque = new boolean[strMasque.length()];
		for (int i=0 ; i<strMasque.length() ; i++){
		    if ((strMasque.indexOf('0',i)-i)==0){
			masque[i] = false;
		    } else if ((strMasque.indexOf('1',i)-i)==0){
			masque[i] = true;
		    }else {
			System.out.println("Pas cool in Pair.remplire :"+strMasque.charAt(i) + " i:"+ i );
			System.exit(42);
		    }
		}
				
		String strTaillePiece = raf_fichierCache.readLine() ;
		String strTaille = raf_fichierCache.readLine() ;
		element.setTaillePiece(Integer.parseInt(strTaillePiece));
		element.setTaille(Integer.parseInt(strTaille));
		
		
		raf_fichierCache.close();
	    } catch (IOException e) {
		System.out.println("ioe in remplire : "+e);
	    }
	}
	else {
	    int l = (int) Math.ceil(((double)element.getTaille()) / element.getTaillePiece());
	    masque = new boolean[l];
	    for ( int i=0 ; i<masque.length ; i++)
		masque[i] = true;
	}
	element.setMasque(masque);
	System.out.println("Chargement en mémoire du fichier : " + element.getName() + " [" + element.getPourcentage() + "%]");
	hash.put(key, element) ;
    }