il software che sto facendo, funziona così: scorre un file messo in una directory, e, riga per riga, scrive su code MQ le singole righe ( http://www-03.ibm.com/software/products/it/ibm-mq )

l'ho strutturato così, questo è il main:

c'è un FileHandler (classe da me fatta) che inizialmente si occupa di capire dove è il file da elaborare (ci sono varie ipotesi)

un FileToQueue (classe da me fatta) nel quale viene fatta una injection di un MQAdapter (classe da me fatta, scrive sulle code MQ) tramite set

un java.io.LineNumberReader a cui è passato il file trovato dal FileHandler

successivamente al FileHandler vengono passati sia il FileToQueue che il LineNumberReader con un metodo

codice:
 public int fileWriteTemp(LineNumberReader objLineNumberReader, FileToQueue objFileToQueue){
          ...
          RandomAccessFile raf = new RandomAccessFile(fileMemo, "rw");
          ...
          
          String lineStr=null;
              while((lineStr = objLineNumberReader.readLine())!=null) {
                  objFileToQueue.process(...)
                  
                  ...
                  
                  raf.writeBytes(Integer.toString(counterLineInputFile));
          }
          ....  
   
   }
in sostanza scorre le righe del LineNumberReader e le passa al FileToQueue che (ricordo che gli era stata fatta una injection di un MQAdapter) le scrive sulle code MQ

ho usato RandomAccessFile perché tengo memoria su un altro file (fileMemo) dell'ultima riga scritta (counterLineInputFile) con l'istruzione "raf.writeBytes(Integer.toString(counterLineInputF ile));"

funziona ma volevo chiedere se, come struttura, vedete delle migliorie? Almeno imparo qualcosa a livello di design, grazie, se avete domande sui dettagli chiedete pure ma per ora rimarrei sulla struttura "alta"

grazie