Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Scrivere su file

  1. #1

    Scrivere su file

    Salve a tutti;
    ho creato un programma che scrive e legge da dei file di testo e l'ho impacchettato in un jar.
    Avendo bisogno che i file di testo siano dentro il file jar, per leggerli ho usato il metodo getResourceAsStream() di java.lang.Class che mi ritorna un oggetto di tipo InputStream.
    Vorrei sapere se esiste un metodo analogo per scrivere su file di testo, che quindi mi ritorni un OutputStream, o un qualsiasi altro modo per aprire i miei file in scrittura.
    Grazie a tutti in anticipo!
    Quando sei vecchio...approfitta sempre di un bagno, non sprecare mai un'erezione e non fidarti mai di una scorreggia.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Scrivere su file

    Originariamente inviato da FranKDR
    Vorrei sapere se esiste un metodo analogo per scrivere su file di testo, che quindi mi ritorni un OutputStream, o un qualsiasi altro modo per aprire i miei file in scrittura.
    Le "risorse", così come intese in relazione a getResource/getResourceAsStream, sono di sola lettura.
    Non ci sono metodi per ottenere un OutputStream su una "risorsa".

    Nel framework di Java SE esistono in effetti le API (package java.util.zip/java.util.jar) per gestire file zip/jar. Ma l'update se non sbaglio non si può. Si può creare un zip/jar nuovo in cui scriverci dentro.

    In ogni caso non ti può essere in alcun modo utile. Quando avvii una applicazione Java, la JVM molto probabilmente tiene un lock sui vari jar (succede su Windows) motivo per cui il jar non è modificabile in nessun modo.

    Comunque se volevi usare delle "risorse" dentro un jar ma volevi anche poterle modificare, allora hai sicuramente sbagliato approccio.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    So che la discussione è vecchia, ma usando la ricerca ho trovato questa.

    Quindi in pratica supponiamo che io abbia un'applicazione che deve poter leggere e scrivere su un file di configurazione.

    La situazione è la seguente.
    Il progetto lo sto sviluppando con Eclipse.
    Nella root del progetto ho due directory che sono bin e source, ovviamente speculari, ma una con i binari e l'altra con i sorgenti.
    Quindi sia sotto bin che sotto source ho questa directory config.
    All'interno di essa c'è un file config.xml che deve essere letto, ma deve anche poter essere scritto.
    Dato che devo distribuire l'applicazione con un jar, ho fatto in modo che tutti i files a cui faccio riferimento siano letti usando getResource().
    Fino a che si tratta di leggere OK, ma se devo scrivere, anche usando il metodo openConnection().getOutputStream() ottengo un errore di I/O. Ho letto in giro che sono metodi di classi astratte, ecc..
    Ma allora: è definitivamente impossibile scrivere un file all'interno di un jar?

    Sono per forza costretto a mettere determinate dir (i cui files devono essere acceduti anche in scrittura) fuori dal jar per poterle utilizzare?

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.