56 votes

InputStream à partir du chemin relatif

J'ai un chemin de fichier relatif (par exemple "/res/exemple.xls") et je voudrais obtenir une InputStream Objet de ce fichier à partir de ce chemin.

J'ai vérifié le JavaDoc et n'a pas trouvé de constructeur ou de méthode pour obtenir un tel InputStream à partir d'un path/

Quelqu'un a une idée ? Faites-le moi savoir !

2 votes

Ce n'est pas un chemin relatif. C'est un chemin absolu.

86voto

Tomasz Nurkiewicz Points 140462

Utilisez FileInputStream :

InputStream is = new FileInputStream("/res/example.xls");

Mais ne lisez jamais à partir du flux d'entrée du fichier brut, car cela est terriblement lent. Enveloppez-le d'abord avec un décorateur de mise en mémoire tampon :

new BufferedInputStream(is);

Le slash de tête signifie que le chemin est absolu et non relative.

78voto

Shakirov Ramil Points 502
InputStream inputStream = Files.newInputStream(Path);

0 votes

Réponse impeccable !

0 votes

Envisagez d'utiliser une version tamponnée pour une meilleure efficacité : lien

4voto

Initialiser une variable comme : Path filePath et ensuite :

FileInputStream fileStream;
try {
    fileStream = new FileInputStream(filePath.toFile());
} catch (Exception e) {
    throw new RuntimeException(e);
}

C'est fait ! En utilisant Path, vous pouvez avoir accès à de nombreuses méthodes utiles.

0 votes

Les réponses existantes couvrent déjà la question d'une manière plus simple.

2voto

michael667 Points 2703

new FileInputStream("your_relative_path") sera relative au répertoire de travail actuel.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X