Comment construire un objet FileInputStream avec tableau d'octets en tant que paramètre
J'ai un fichier zip et après décodage, je reçois un tableau d'octets maintenant, je veux créer un objet FileInputStream avec cet objet byte []. Je ne veux pas créer un fichier au lieu de transmettre les données de contenu ne FileInputStream.
Est-il de toute façon ?
voici le code:
byte[] decodedHeaderFileZip = decodeHeaderZipFile(headerExportFile);
FileInputStream fileInputStream = new FileInputStream(decodedHeaderZipFileString);
EDIT:
Je voulais construire une ZipInputStream objet avec un FileInputStream.
OriginalL'auteur Rauf | 2013-11-07
Vous devez vous connecter pour publier un commentaire.
Mais vous n'avez pas de fichier. Vous avez quelques données dans la mémoire. Ainsi, un
FileInputStream
est pas nécessaire - il n'y a pas de fichier pour le lire.Si possible, utilisez un
ByteArrayInputStream
à la place:Si possible, d'exprimer votre API en termes de
InputStream
,Reader
etc plutôt que d'une mise en œuvre spécifique - ce qui vous permet d'être flexible dans lequel la mise en œuvre que vous utilisez. (Ce que je veux dire, c'est que, si possible, rendre les paramètres de la méthode et des types de retourInputStream
plutôt queFileInputStream
- de sorte que les appelants n'ont pas besoin de fournir les types spécifiques.)Si vous avez absolument ont pour créer un
FileInputStream
, vous aurez besoin d'écrire les données dans un fichier.Il est juste de faire exactement cela, même y compris le code.
comme mentionné dans l'ÉDITION..avec @Jon Skeets aider, j'ai formé InputStream objet et l'a transmis à la ZipInputStream en tant que paramètre et CELA a FONCTIONNÉ !! merci 🙂
J'ai édité ma réponse à expliquer ce que j'entends sur les Api. Il n'est pas clair si vous une API qui avait besoin de
FileInputStream
à tous, mais c'est encore quelque chose à considérer.OriginalL'auteur Jon Skeet