Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883

    (java) come modificare un file di testo

    Ho un file con la seguente formattazione

    Prova.txt:

    word1 = pippo
    word2 = pluto
    word3 = minni
    word4 = nonno
    ecc..

    Dovrei cambiare il valore associato al word3 in topo, cioè:

    word1 = pippo
    word2 = pluto
    word3 = topo
    word4 = nonno
    ecc..

    Per fare questo avevo pensato: leggo tutto il file con la classe Streamtokenize, il token opportuno lo sostituisco con il valore che voglio, riscrivo il file

    Il problema è che non so come fare a riscrivere il file con il formato con cui l'ho letto

    Avete qualche idea?

  2. #2
    se il tuo file ha una struttura regolare (la struttura sarà sempre world1 seguito da world2 world3... worldN) puoi semplificare il tutto e caricare tutti gli elementi in una struttua di tipo Vector.
    Poi modifichi il 3o elemento (di indice 2)

    worlds.setElementAt("topo",2);

    Quindi,per riscrivere il file : ti crei (ad esempio) il solito PrintWriter e ricostruisci il file con un ciclo

    for (int i =0; i< worlds.size(); i++)
    outWriter.println(" world" + (i+1) + " = " + worlds.elementAt(i));


    Spero di essere stato chiaro/utile.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    thx per la risposta oramai ho optato per l'uso della classe filerandomaccess, anche se la tua mi piaceva come soluzione

    La mia soluzione non funziona più se modificano anche solo di una virgola il file

    La tua soluzione FORSE è più lenta nel caso in cui il file abbia molti campi e quindi il vector assuma dimensioni consistenti

  4. #4
    non dovrebbe essere troppo lenta visto che c'è solo un ciclo lineare (complessità N)... poi dipende dalla consistenza delle informazioni. per milioni di record ti conviene utilizzare un database indicizzato!

  5. #5
    Potresti anche usare un file di properties e usare l'oggetto java.util.Properties, che ti permette di leggere da file e ottenere una Hashtable; dopodiche modifichi la proprietà che ti interessa, e risalvi l'oggetto Properties nel file
    ciao
    zonatre.it - il mio sito personale
    Belluno Country Side primo e unico gruppo country in provincia
    confronta i costi delle tue chiamate fatte con diversi operatori

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    ottima soluzione, thx

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.