Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Errore salvataggio

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    33

    Errore salvataggio

    Salve a tutti,
    ho un problema nella scrittura di un file su disco durante, la classe che utilizzo è la seguente:

    codice:
    public static void savefile(String pathApp, String user, String FileName, InputStream is) throws IOException {
            File f = new File(pathApp+"\\"+user+"\\" + FileName);
            FileOutputStream fos = new FileOutputStream(f);
            byte[] buf = new byte[4096];
            int bytesRead;
            
            while((bytesRead = is.read(buf))!=1) {
                fos.write(buf, 0, bytesRead);
            }
            fos.close();
        }
    l'errore che mi dà è il seguente(sulla riga di codice del while...):

    com.sun.mail.util.DecodingException: BASE64Decoder: Error in encoded stream: needed at least 2 valid base64 characters, but only got 0 before padding character (=), the 10 most recent characters were: "argin:0px="

    qualcuno saprebbe aiutarmi sto impazzendo

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    E' sbagliata la condizione del while:

    codice:
    while((bytesRead = is.read(buf)) != -1) {
    O, meglio

    codice:
    while((bytesRead = is.read(buf)) >= 0) {
    Poi, io ti suggerisco di non costruire i percorsi usando i backshash, ma di affidarti al valore restituito da File.separator (o File.separatorChar), così da rendere il codice cross-platform.

    codice:
    File f = new File(pathApp + File.separator + user + File.separator + FileName);
    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    33
    Ciao Lele,
    purtroppo non era quello il problema l'errore citato prima lo dà sempre..

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Scusa, avevo visto solo che la guardia del while non era corretta.

    Quell'errore dice che stai cercando di decodificare una stringa che dovrebbe essere in Base64, ma a quanto pare non stai dando in pasto alcuna stringa Base64 (gli ultimi 10 caratteri rappresentano una stringa in chiaro). Il carattere "=" è un marcatore particolare per le stringhe in formato Base64... ma, appunto, quella che stai dando in pasto dal decoder non è una stringa Base64.

    Per la precisione, cosa stai facendo?


    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
    Feb 2007
    Messaggi
    33
    Sto cercando di salvare a disco un file scaricato con client IMAP(che è una classe java che ho trovato in internet).
    il metodo di salvataggio file che ho postato prima lo richiamo così:

    codice:
    savefile(pathApp, user, bodyPart.getFileName(), bodyPart.getInputStream());

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.