2009-07-08 16 views
2

Je travaille sur la conversion d'une application de bureau Java très simple à exécuter en Java Web Start et j'ai toutes sortes de problèmes avec les fichiers d'entrée/sortie. Plus précisément, je n'arrive pas à trouver des informations sur la façon de gérer les E/S dans une application de démarrage Web. J'ai essayé de placer les fichiers d'entrée dans le même dossier sur mon serveur Web que le fichier jar et jnlp, mais il ne le lit pas.entrée/sortie avec Java Web Start

J'ai un fichier d'entrée que je veux garder sur le serveur web et lire dans l'application à partir de là.

J'ai un deuxième fichier que je veux que l'application génère sur la machine client la première fois qu'elle est exécutée, et lire à partir de là chaque fois par la suite.

Si quelqu'un sait quelles considérations je dois prendre pour les E/S dans Java Web Start ou peut me diriger vers une ressource qui l'explique, je l'apprécierais.

Répondre

2

Vous pouvez savoir d'où vous avez été téléchargé avec BasicService, puis utiliser HTTP pour transférer le fichier. Vous pouvez également les ajouter à un pot.

Vous pouvez stocker une quantité limitée d'informations (je pense qu'il est actuellement par défaut 128K/muffin) avec PeristenceService.

http://java.sun.com/javase/6/docs/jre/api/javaws/jnlp/

+1

"muffin"? (vs cookie) ha! +1 juste pour la référence. –

0

Vous n'avez pas beaucoup de choix.

  • Vous pouvez lire le fichier à partir de http nouvelle URL (adresse) .openStream()
  • Vous pouvez intégrer le fichier dans le pot que je crois que vous ne voulez pas, puis utiliser getResourceAsStream()

Vous stockez généralement des fichiers sur l'utilisateur disque dur à l'aide d'un dossier caché

public final class ApplicationConstants{ 
    final static String HOMEDIR_STRING = System.getProperty("user.home"); 
    final static File HOMEDIR = new File(HOMEDIR_STRING); 
    final static File CONFIG_DIR = new File(HOMEDIR, ".com.mycompany.myapp"); 
} 
/// 
if(!ApplicationConstants.CONFIG_DIR.exists()) ApplicationConstants.CONFIG_DIR.mkdirs(); 

File outputFile = new File(ApplicationConstants.CONFIG_DIR, "my.xx"));