C'è un modo in Java per costruire un'istanza File su una risorsa recuperata da un jar attraverso il classloader?Risorsa Java come file
La mia applicazione utilizza alcuni file dal jar (predefinito) o da una directory del filesystem specificata in fase di esecuzione (input dell'utente). Sto cercando un modo coerente di
a) carico questi file come un flusso
b) sfogliare i file nella directory definita dall'utente o la directory nel vaso, rispettivamente
Edit: A quanto pare, l'approccio ideale sarebbe di stare lontano da java.io.File del tutto. C'è un modo per caricare una directory dal classpath ed elencarne il contenuto (file/entità contenuti in essa)?
Sono d'accordo che è fastidioso, ma rende ClassLoader più ampiamente applicabile in altri modi. Ad esempio, è facile scrivere un "web classloader" perché il web è adatto per il recupero dei file, ma generalmente non * elenca * i file. –
Sembra che la risorsa che si sta tentando di caricare sia molto più grande di 1MiB il 'InputStream' che si ottiene dagli arresti' getResourceAsStream' per recuperare i byte della risorsa dopo quella dimensione e invece restituisce 0 se è contenuto in un filesystem compresso come un barattolo Sembra che tu sia obbligato a usare 'getResource' e caricare il file indipendentemente da questo in quel caso. – mgttlinger
@mgttlinger: Mi sembra improbabile che valga la pena di postare una nuova domanda con una repro, se possibile. –