Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [JAVA]FileOutputStream

  1. #1

    [JAVA]FileOutputStream

    Ciao a tutti!!

    Sto facendo una classe che mi permetta di scrivere e leggere sui file, solo che per la lettura tutto ok, infatti dopo aver fatto la fileInputStream la filtro con un DataInputStream in modo di aver un po di metodi già fatti...

    Faccio così anche con il fileOutputStream usando il DataInputStream, solo che nel DataOutputStream non c'è il writeLine...

    Vabbe a parte quello se uso un metodo tipo writeInt(56); non mi stamperà nel file 56 ma me lo prende come un char e mi stampa 8(infatti la keyascii del tasto 8 è 56), e così mi fa anche con gli altri metodi...

    Qualcuno mi puo aiutare...

    Grazie in anticipo e ciao ciao
    "Penso che nel mondo ci sia mercato per quattro o cinque computer"... Thomas Watson, presidente della IBM, 1943

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    23
    Premetto che non ho mai usato i flussi Data però da quello che ricordo è corretto che faccia così, infatti oltre al carattere ascii dovrebbe salvare anche le informazioni per l'eventuale metodo readInt per capire che quello è il carattere ascii che rappresenta il numero 56. Se invochi il metodo readInt cosa ti restituisce? Dovrebbe restituirti 56 e quindi è corretto.

  3. #3
    La cosa strana è che con qualsiasi metodo(writeInt, writeFloat, writeChar...) lui mi restituisce sempre 8!

    Però una cosa strana succede...

    il char occupa 2 byte, l'int 4 byte ecc..

    Quando vado poi a salvare su file mi occupa due byte ma pero lasciandomi uno spazio...

    mi spiego meglio...

    Se io vado a salvare in un file il 56 con il writeChar mi scrive:

    " 8", con lo spazio prima dell'8, e se salvo il 56 come int mi fa:
    " 8", lasciandomi appunto 3 spazi prima dell'8 e quindi occupando effettivamente 4 byte...

    è un comportamento alquanto strano e non so proprio come fare per usarli come uso normalmente il FileInputStream...

    Se Qualcuno mi puo dare una mano si faccia sentire...

    Grazie a tutti in anticipo... CIAO
    "Penso che nel mondo ci sia mercato per quattro o cinque computer"... Thomas Watson, presidente della IBM, 1943

  4. #4
    xchè write(byte[] b); non va bene per scrivere?
    Se devo scrivere una stringa credo si possa tranquillamente fare:
    s = "stringa";
    fos.write(s.getBytes());

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 © 2024 vBulletin Solutions, Inc. All rights reserved.