Sono un po 'bloccato su un progetto su cui sto lavorando dove voglio caricare un file di testo da un'altra cartella. Sto usando Netbeans e ho, per gli scopi di questo problema, due cartelle, una con la mia classe e una con la risorsa.Problemi nell'uso di Class.getResourceAsStream() in Java
La classe è in ../misc/[ClassName]
e il file di testo che voglio caricare è in ../resources/[Name].txt
questo suona incredibilmente semplice, e dopo aver fatto Java per un bel po 'mi dovrebbe sapere questo, ho assunto il miglior modo di caricare questo file piuttosto che utilizzare un semplice FileReader, sarebbe quella di utilizzare getResourceAsStream
, come indicato:
InputStream is =
this.getClass().getClassLoader().getResourceAsStream(_filename + ".txt");
Idealmente risparmiando tempo e non dover hardcode in un filep ath. Ora, il mio problema è che continuo a ricevere sempre il reso nullo dal codice precedente, e in effetti qualsiasi altra permutazione che posso mettere su di esso. Ho provato /resource/filename.txt
o resource/filename.txt
come parametri, usando .getClass().getResourceAsStream
in contrasto con getClassLoader()
, tutto sta ancora restituendo lo stesso risultato.
Giusto per evitare qualsiasi confusione, ho controllato il nome del file e il suo sicuramente giusto e nel caso giusto ecc., Quindi non è questo il problema. Qualche idea? So che potrei semplicemente usare lo FileReader
per raggiungere lo stesso obiettivo, ma il suo tipo di principio adesso!
Sì, l'eliminazione di 'getClassLoader()' dovrebbe risolverlo. Almeno, ha fatto per me: 'getClass(). GetResourceAsStream (" ../ resources/filename.txt ")' – Ash
@Ash: questo non fa differenza. 'Cls.getResourceAsStream()' è solo una scorciatoia per 'cls.getClassLoader(). GetResourceAsStream()'. – BalusC
@BalusC: ha fatto tutta la differenza in un'app di prova che ho scritto cercando di replicare il problema. Con l'extra "getClassLoader()" restituiva null, senza che restituisse il flusso (o l'URL per 'getResource()'). – Ash