[java] lecture local ou url, différence ?

Fermé
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 2 janv. 2007 à 16:40
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 3 janv. 2007 à 10:23
Allo,

Je vous pose la question suivante, à savoir y a-t-il une différence (ou plusieurs) entre une lecture de fichier en local et via url.

Pour etre plus clair, voici une partie du code sur lequel je bute :
//--- reads the font file
File myFontFile = new File(theFileLocat);
InputStream myFis = null;
if (!myFontFile.exists()) {
	try {
		//myFis = (FileInputStream) (new URL(theFileLocat).openStream());
		myFis = (new URL(theFileLocat).openStream());
	} catch (MalformedURLException e) {		
		throw new IOException("Kanji Font file '"+theFileLocat+"' is not accessible");
	}
} else {
	myFis = new FileInputStream(myFontFile);			
}

while ( myFis.read(myTabRead) > 0) {
	
	//--- builds the key
	myKey = new byte[2];

	//--- initialisation of key
	myKey[0] = myTabRead[0];
	myKey[1] = myTabRead[1];

	//--- new font
	myFont = new byte[106];
	System.arraycopy(myTabRead, 0, myFont, 0, myFont.length);

	//--- fills the Kanji table
	getKanjiTable().put(new Integer(byteToShort(myKey)), myFont);
}


La première partie du code (avant la lecture du fichier, le while donc) consiste à créer le flux de lecture. Si le fichier passé en paramètre n'existe pas localement, on tente d'effectuer une lecture via url dessus.
La deuxieme partie du code lit le fichier et le load en mémoire dans une hashtable.

Mon problème est que la lecture du fichier en question est complète lorsque je passe par le fichier local, et incomplète losque la lecture se fait via URL (le fichier est situé sur un serveur distant).

Voilà donc mon probleme, tout est nickel en local, mais à distance ca foire. La lecture s'arrete aléatoirement à peu pres à la moitié du fichier pour vous donner un ordre d'idée.

Quelles sont les différences entre lecture de fichier en local et lecture de fichier via url ?

Un grand merci à vous si vous pouvez m'aider (et oui je n'ai que ca ^^).
A voir également:

1 réponse

kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
3 janv. 2007 à 10:23
Re bonjour,

J'ai avancé un peu dans mon probleme et il se trouve que j'ai déjà rencontre ca en C autrefois mais je ne me souviens plus de quoi il s'agit.

Désormais, dans la partie qui suit :
int myRet = -1;
		int compteur = 0;
		while ( ( myRet = myFis.read(myTabRead)) > 0) {
			//System.out.println("Retour: "+myRet);
			//--- builds the key
			compteur += myRet;
			myKey = new byte[2];
			//--- initialisation of key
			/*
			for ( int i = 0; i < myTabRead.length; i++ ){
				System.out.print(myTabRead[i]);
			}*/
			System.out.println();
			
			myKey[0] = myTabRead[0];
			myKey[1] = myTabRead[1];

			//--- new font
			//myFont = new byte[106];
			//System.arraycopy(myTabRead, 0, myFont, 0, myFont.length);

			//--- fills the Kanji table
			getKanjiTable().put(new Integer(byteToShort(myKey)), myTabRead);
			
		}


Tout fonctionne bien, le fichier est lu et loader en mémoire entierement lorsque je laisse le System.out.println() au milieu.
Si j'ai le malheur de l'oter ca ne fonctionne plus.

Il me semble qu'il s'agit d'un probleme de mémoire et de flush mais je ne sais plus trop bien, quelqun pourrait-il m'aider la dessus ?

Thanks :)
0