Scrittura di interi su file

di il
4 risposte

Scrittura di interi su file

Buongiorno,
sono un nuovo utente del forum, ho già dato una lettura al regolamento e spero sia nella giusta sezione.
Ho un problema con gli Stream di Output, in particolare con la scrittura di file di testo in JAVA.
Devo scrivere n numeri casuali su un file. il mio problema sta nel fatto che avviene la scrittura
sul file ma non vengono scritti gli interi ma dei simboli/caratteri strani.
Grazie
void create() throws IOException {
    
    // crea il file nella seguente destinazione
        String strFilePath = "C:.....\\Desktop\\"+nome+".txt";
        FileOutputStream fos = new FileOutputStream(strFilePath);
        DataOutputStream dos = new DataOutputStream(fos);
        int contatore = 0;
        while(contatore < howMany){
            int casuale = (int)(Math.random()*10);       
            dos.writeInt(casuale);
            contatore++;           
        }
    }

4 Risposte

  • Re: Scrittura di interi su file

    Jdavide91J ha scritto:


    il mio problema sta nel fatto che avviene la scrittura
    sul file ma non vengono scritti gli interi ma dei simboli/caratteri strani.
    DataOutputStream serve per scrivere dati "binari" in formato Big-Endian. Un int viene sempre scritto come 4 byte, appunto i 32 bit che compongono un int.

    DataOutputStream/FileOutputStream da soli non vanno bene se vuoi fare un file "di testo" leggibile da un comune text-editor.
  • Re: Scrittura di interi su file

    Ok. Ma se io scrivo tramite writeInt sul riferimento dos, e leggo da datainputstream con dis.readint(),
    I dati che leggo sono comunque degli interi, scritti in binario?
  • Re: Scrittura di interi su file

    Jdavide91J ha scritto:


    Ok. Ma se io scrivo tramite writeInt sul riferimento dos, e leggo da datainputstream con dis.readint(),
    I dati che leggo sono comunque degli interi, scritti in binario?
    Se fai la gestione così "speculare", certo, è corretto e i dati riletti sono esattamente quelli scritti. Ma non è un file di "testo".

    (insomma, definirlo .txt è inappropriato)
  • Re: Scrittura di interi su file

    Ok, adesso è chiaro. Mi sono reso conto che la consegna che mi è stata proposta
    In effetti prevedeva la scrittura di interi su file, veniva consigliato di usare
    La classe outputstream e derivate quindi bisognava scrivere su file generici e non di testo.
    Grazie per la dritta. Posso modificare io il titolo della discussione oppure c pensate voi?
Devi accedere o registrarti per scrivere nel forum
4 risposte