Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    115

    [java] lettura e scrittura random su file

    Salve a tutti,
    qualcuno potrebbe spiegarmi come si realizza la lettura e la scrittura su file ad accesso casuale, ovvero a partire da un byte specifico e non obbligatoriamente a partire dall'inizio del file???

    Grazie molte.

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    115
    Ho provato con questo codice spulciato da Internet:

    [code]

    /* SCRITTURA */
    out = new RandomAccessFile(_nomedelfile_,_opzionidiaccesso_) ;
    out.seek(_posizionenelfile_);
    out.writeChars(what); //che scrive la stringa what sul file

    /* LETTURA */

    in = new RandomAccessFile(_nomedelfile_,_opzionidiaccesso_) ;
    in.seek(_posizionenelfile_);
    what=in.readLine(); //che scrive il contenuto del file su what

    [code]

    ma, senza che me lo sappia spiegare, all'interno del file, una stringa, ad esempio ciao, mi viene scritta con degli spazi intermedi, ossia

    c i a o e NON ciao.

    La lettura di conseguenza mi produce la stampa di c[]i[]a[]o[].

    Qualcuno sa aiutarmi??

  3. #3

    x sdrammatizzare

    Cris,

    guarda la FAD!!!

    ahahahahaaha


  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Il problema degli spazi è dovuto al fatto che Java utilizza i caratteri UNICODE che occupano 2 byte al posto di uno: al posto del metodo writeChars() che hai usato, prova ad utilizzare writeBytes().


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    115
    Avevo già provato, ma il problema permane comunque.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    115
    Chiedo scusa, probabilmente alla prima prova dormivo.

    Il problema si è risolto col tuo consiglio, grazie.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    115
    Adesso mi occorre un altro aiuto,

    sai dirmi come cancellare il contenuto di un file senza cancellare il file vero e proprio??

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    A me questo codice funziona perfettamente:
    codice:
    import java.io.*;
    class Prova {
       public static void main(String [] a) throws Exception {
          RandomAccessFile raf = new RandomAccessFile("MioFile.DAT", "rw");
          raf.seek(27L);
          raf.writeBytes("Ciao");
          raf.close();
       }
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    115
    Ho provato a riempire il file per tutta la sua lunghezza con dei caratteri vuoti (='\0'), ma in tal modo il file non viene svuotato, semplicemente il contenuto è sostituito con una serie di [].

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Ed è ovvio: una serie di caratteri '\0' non equivale all'assenza di caratteri!


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.