Imprimir varios arquivos

Pessoal eu achei um exemplo de imprimir arquivo só que eu quero imprimir varios arquivos de uma vez que vão conter em 1 pasta, o número de arquivos também não vai ser fixo segue abaixo o modelo que achei na internet…

import java.io.FileInputStream;
import java.io.FileNotFoundException;

import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.ServiceUI;
import javax.print.SimpleDoc;
import javax.print.attribute.HashDocAttributeSet;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Copies;

public class Imprimir{
	
	public Imprimir(boolean mostrarDialogo) {
	      System.out.println(mostrarDialogo);
	    try {
	      // Localiza todas as impressoras com suporte a arquivos txt
	      PrintService[] servicosImpressao =PrintServiceLookup.lookupPrintServices(
	             DocFlavor.INPUT_STREAM.AUTOSENSE, null);
	
	      System.out.println("Impressoras com suporte: "+ servicosImpressao.length);
	
	      // Localiza a impressora padrão
	      PrintService impressora = PrintServiceLookup.lookupDefaultPrintService();
	
	      System.out.println("Impressora: " + impressora.getName());
	
	      System.out.println("Imprimindo arquivo-texto");
	
	      // Definição de atributos do conteúdo a ser impresso:
	      DocFlavor docFlavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
	
	      // Atributos de impress do documento
	      HashDocAttributeSet attributes = new HashDocAttributeSet();
	     
	     
	      // InputStream apontando para o conteúdo a ser impresso
	      FileInputStream fi = new FileInputStream("teste.txt");
	      
	     
	      // Cria um Doc para impressão a partir do arquivo exemplo.txt
	      Doc documentoTexto = new SimpleDoc(fi, docFlavor, attributes);
	
	      // Configura o conjunto de parametros para a impressora
	      PrintRequestAttributeSet printerAttributes = new HashPrintRequestAttributeSet();
	
	      System.out.println(mostrarDialogo);
	     
	      //mostrarDialogo = false;
	     
	      if (mostrarDialogo) {
	        // exibe um dialogo de configuracoes de impressao
	        PrintService servico = ServiceUI.printDialog(null, 320, 240,
	            servicosImpressao, impressora, docFlavor, printerAttributes);
	
	        if (servico != null) {
	          DocPrintJob printJob = servico.createPrintJob();
	          printJob.print(documentoTexto, printerAttributes);
	        }
	      }
	      else {
	        // Cria uma tarefa de impressão
	        DocPrintJob printJob = impressora.createPrintJob();
	
	        // Adiciona propriedade de impressão: imprimir duas cópias
	        printerAttributes.add(new Copies(2));
	
	        // Imprime o documento sem exibir uma tela de dialogo
	        printJob.print(documentoTexto, printerAttributes);
	      }
	    }
	    catch (FileNotFoundException ex) {
	      System.out.println("Arquivo file.txt não encontrado!");
	    }
	    catch (PrintException ex2) {
	      System.out.println("Erro de impressão: " + ex2.getMessage());
	    }
 }	
	


  public static void main(String[] args) {
    Imprimir exemplo = new Imprimir(true);
  }
}