Lire le fichier depuis le classpath avec Java 7 NIO

J'ai googlé autour pendant un bon moment pour cela, mais tous les résultats du point de pré-Java 7 NIO solutions. J'ai utilisé le NIO trucs de lire dans les fichiers de la un emplacement spécifique sur le système de fichiers, et il était beaucoup plus facile qu'avant (Files.readAllBytes(path)). Maintenant, je suis désireux de lire dans un fichier qui est inclus dans mon de la GUERRE et sur le chemin de la classe. Nous n'avons actuellement qu'avec un code similaire au suivant:

Input inputStream = this.getClass().getClassLoader().getResourceAsStream(fileName);
ByteArrayOutputStream byteStream = new ByteArrayOutputStream();

/* iterate through the input stream to get all the bytes (no way to reliably find the size of the 
 *     file behind the inputStream (see http://docs.oracle.com/javase/6/docs/api/java/io/InputStream.html#available()))
 */
int byteInt = -1;
try
{
    byteInt = inputStream.read();
    while (byteInt != -1)
    {
        byteStream.write(byteInt);
        byteInt = inputStream.read();
    }

    byteArray = byteStream.toByteArray();
    inputStream.close();
    return byteArray;
}
catch (IOException e)
{
    //...
}

Alors que cela fonctionne, j'espérais qu'il y a un moyen plus facile/mieux à faire avec le NIO trucs en Java 7. Je suppose que je vais avoir besoin d'obtenir un Chemin objet qui représente ce chemin sur le chemin de la classe, mais je ne suis pas sûr de la façon de le faire.

Je m'excuse si ce n'est une super chose facile à faire. Je ne peux pas le comprendre. Merci pour l'aide.

  • Avez-vous essayé YourClass.class.getResourceAsStream(filename);?
  • Voir mise à jour de question.
  • Le temps de mettre à jour la Meilleure réponse?
InformationsquelleAutor dnc253 | 2013-02-04