Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    applicazione standalone per gestione file

    Devo sistemare del codice di una applicazione standalone che c'è già.
    Spiego cosa fa:
    ipotesi 1) legge da un file e scrive riga per riga dei messaggi su una coda (1 riga = 1 messaggio), quando ha finito copia il file in un'altra dir
    ipotesi 2) legge da un file e scrive tutto il contenuto del file su un unico messaggio, quando ha finito copia il file in un'altra dir

    il tipo di ipotesi dipende da delle configurazioni

    io devo aggiungere una parte che si occupi di tenere conto delle righe già trattate; insomma se per qualche motivo durante la procedura succede qualcosa e magari c'è un'eccezione (esempio la coda diventa irraggiungibile) e i primi 10 messaggi sono stati inviati (ammettiamo che il file ne abbia 50), quelli che non sono stati trattati (quindi i 40 che rimangono) devono essere trattati la volta successiva

    diciamo quindi che riguarda l'ipotesi 1, devo scrivermi da qualche parte cosa ho già fatto e cosa no; non ho nessun db quindi penso di doverlo scrivere sul file system

    per curiosità cosa fareste?
    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    Magari non ho capito bene la situazione o sottovaluto il problema ma non vedo la difficoltà..
    Supponiamo che tu prenda riga per riga il contenuto del file mediante BufferedReader , ti basta una semplice variabile intera che funga da "count" , del tipo (è un semplice esempio):

    codice:
    BufferedReader br = new BufferedReader (new InputStreamReader (new FileInputStream ("MODIFICHE ZM.txt")));
    int count = 0;
    String s;
    try {
          while ((s = br.readLine ()) != null) {
            	tuoMetodoMandaMessaggio ();
                    count++;
          }
    }catch (EventualeEccezioneDaMandaMessaggio eedmm) {
          System.out.println ("Mi sono fermato alla riga " + count + " per la seguente causa: " + eedmm.getMessage () );
    }

    Spero di aver reso l'idea..


  3. #3
    Originariamente inviato da zipangulu
    Magari non ho capito bene la situazione o sottovaluto il problema ma non vedo la difficoltà..
    Supponiamo che tu prenda riga per riga il contenuto del file mediante BufferedReader , ti basta una semplice variabile intera che funga da "count" , del tipo (è un semplice esempio):

    codice:
    BufferedReader br = new BufferedReader (new InputStreamReader (new FileInputStream ("MODIFICHE ZM.txt")));
    int count = 0;
    String s;
    try {
          while ((s = br.readLine ()) != null) {
            	tuoMetodoMandaMessaggio ();
                    count++;
          }
    }catch (EventualeEccezioneDaMandaMessaggio eedmm) {
          System.out.println ("Mi sono fermato alla riga " + count + " per la seguente causa: " + eedmm.getMessage () );
    }

    Spero di aver reso l'idea..

    certo

    ma si può fare in vari modi, volevo sapere in concreto cosa faresti per poi registrare quel count

  4. #4
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Non ci sarebbe la possibilità di usare un database? Lo renderebbe abbastanza più facile

    La tua applicazione è un tipo di daemon che rimanga in memoria o termina sempre quando ha finito (oppure quando c'è un'eccezione) e viene sempre chiamato tramite cron? Nel primo caso potresti tenere il counter (o una tabella con un tipo di ID di tutte le righe processate) in memoria e poi la volta successiva si comincia da lì.

    Se però l'applicazione termina dovresti salvare questo ID in qualche modo. Il modo più facile sarebbe scriverlo in un tipo di log o stats file.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  5. #5
    Originariamente inviato da neroux
    Non ci sarebbe la possibilità di usare un database? Lo renderebbe abbastanza più facile

    La tua applicazione è un tipo di daemon che rimanga in memoria o termina sempre quando ha finito (oppure quando c'è un'eccezione) e viene sempre chiamato tramite cron? Nel primo caso potresti tenere il counter (o una tabella con un tipo di ID di tutte le righe processate) in memoria e poi la volta successiva si comincia da lì.

    Se però l'applicazione termina dovresti salvare questo ID in qualche modo. Il modo più facile sarebbe scriverlo in un tipo di log o stats file.

    niente db purtroppo

    non mi pare che l'applicazione termini (scusa se sono impreciso ma ho letto una descrizione e basta) ma comunque in caso di problemi bisognerebbe registrare il punto dove si è arrivati, insomma in memoria è meglio non tenere nulla.

    utilizzare la serializzazione sarebbe sbagliato?

    o altrimenti scrivo su un file di log come hai detto e come avevo pensato

    grazie

  6. #6
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Non direi che sia sbagliato, piuttosto non necessario. La serializzazione è comodo quando c'è una struttura (class) abbastanza complessa da salvare. Nel tuo caso hai solo un'integer, massimo due o tre.

    Direi che la cosa più semplice sia il log file, però se puoi postare un po' di codice oppure un esempio dei dati sarebbe più facile dire.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  7. #7
    Originariamente inviato da neroux
    Non direi che sia sbagliato, piuttosto non necessario. La serializzazione è comodo quando c'è una struttura (class) abbastanza complessa da salvare. Nel tuo caso hai solo un'integer, massimo due o tre.

    Direi che la cosa più semplice sia il log file, però se puoi postare un po' di codice oppure un esempio dei dati sarebbe più facile dire.
    ok, appena ci metto le mani posto

    per ora già mi hai dato un'indicazione utile su quando usare la serializzazione; in effetti per le cose che ho letto non dovrebbe servire


    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.