MappedByteBuffer or FileChannel from a Network (FTP) file ??? - Java - Programmation
Marsh Posté le 22-12-2008 à 10:11:23
Bonjour,
Pas d'idée.?
Une autre question : est-ce que le seul sorti qu'on peut avoir une connexion FTP à un fichier distant est de type InputStream?
merci
Hassan
Marsh Posté le 22-12-2008 à 11:16:43
Je vais répondre à côté de la plaque mais je me lance.
Le FTP c'est pourri: quand tu choppes un fichier, tu n'en connais même pas la taille, tu reçois des octets sur le canal data, et quand ça ferme, ben c'est que le fichier doit être complet, ou que t'as eu une erreur de réseau ou que ça a tronqué ou que machin.
Donc ne pouvoir faire que de l'InputStream dessus ça ne me choque pas. FileInputStream -> KO c'est pas un fichier. Mapped -> KO il faut que ça soit un fichier pour être mappé.
Marsh Posté le 22-12-2008 à 11:17:06
(Bref si tu peux faire du HTTP, ça serait quand même mieux niveau fiabilité de transfert).
Marsh Posté le 19-12-2008 à 17:12:29
Bonjour tout le monde,
J'ai une petite question sur histoire de FileChannel et MappedByteBuffer crée à partir d'un fichier distant (sur le réseau).
Je m'explique. J'ai développé une application qui prend en entrée le nom d'un file et utilise de FileInputStream et apres FileChannel pour creer un MappedByteBuffer sur ce fichier la.
Le problème c'est que la, je veut développer cette application pour qu'elle soit adaptée également aux fichiers qui se trouvent à distant sur un réseau.
On a accès aux fichiers distants avec un API qui rend un InputStream a partir du fichier distant. La connexion se fait soit par FTP soit par HTTP.
Le truc c'est que la sortie de cette API est un InputStream ou autrement dit on a un InputStream à partir de fichier distant mais on a besoin de FileInputStream pour creer FileChannel.
Ma question c'est que :
Comment créer un FileChannel ou un FileInputStream ou un MappedByteBuffer à partir d'un fichier qui se trouve à distant sur un réseau et la connexion se fait par FTP ou HTTP.
est-ce que Casting de InputStream à FileInputStream ca peut marcher lorsqu'on sait que le InputStream est la sortie d'une connextion FTP (uri.getStream())?
J'ai entendu des chose sur socketChannel etc mais franchement c'est mon première fois que je développe pour réseau et je connais rien de tout ca. Ce qui est essentiel pour moi est d'avoir un MappedByteBuffer à partir d'un fichier distant et pour cela il faut a priori un FileChannel qui se crée par FileInputStream. Mais la sortie de connexion réseau (au fichier distant) est InputStream.
Sinon comment faire?
Une idée? une piste?
Je vous remercie tous par avance
Hassan