Je tourne en rond depuis un moment, je me permets donc de vous soumettre mon
problème.
J'ai réalisé un "convertisseur" qui permet d'obtenir comme son nom l'indique
des équivalences entre plusieurs "référentiels".
Ce convertisseur fait appel à un fichier properties pour s'initialiser.
l'un des lignes du fichier properties donne le chemin vers le fichier texte.
file.source=C:\\eclipsev3\\workspace\\eurolist\\bin\\oco_eurolist.csv
Il va ensuite chercher ses données dans le fichier texte (CSV) qu'il charge
en mémoire.
Ce convertisseur doit pouvoir fonctionner offline, la solution retenue a
donc été de proposer le téléchargement d'une page html + applet + fichier
CSV.
J'ai donc réalisé que "file.source" devait être défini en relatif, plutôt
qu'en absolu.
Et là rien ne va plus...
Le fichier properties pourtant défini de manière relative est bien chargé
(quel que soit le mode d'execution : console ou applet).
Pour charger ce fichier j'utilise la classe PropertyLoader (trouvée sur
JavaWorld :
http://www.javaworld.com/javaworld/javaqa/2003-08/01-qa-0808-property-p2.html).
Pourtant, il me semble que je ne peux pas utiliser cette classe pour charger
des ressources autres que des "properties".
J'ai donc développé la classe suivante :
public class InMemoInstrLoader {
static Vector vct;
/*<P>load (once and for all) instruments list in memory from CSV
file.</p>*/
public static Vector load(String relPathToSource){//String PathToSource
if(vct==null) {//TODO improve to a real singleton pattern.
FileInputStream inputStream;
try {
System.out.println("relPathToSource : "+relPathToSource);
inputStream = new FileInputStream(relPathToSource);
//"bin\\oco_eurolist.csv"
BufferedReader reader = new BufferedReader(new
InputStreamReader(inputStream));
String line;
vct = new Vector();
while ((line = reader.readLine()) != null){
[etc...]
Mais, selon le contexte d'éxecution (mode console / applet) le chemin
retourné est très différent (il va même chercher le fichier sur le "bureau"
!) et provoque une FileNotFoudIOException.
Comment faire pour que le chemin relatif du fichier CSV soit bien interprété
?
Merci de votre aide.
PS : J'ai également essayé de passer par File() et la méthode associée
getAbsolutePath(), mais sans succès.
--
Olivier
http://e-cologis.com
le site communautaire des colocataires
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Symon
Salut,
Utilise le class loader pour qu'il se charge de trouver ton fichier.
URI uri = Toto.class.getResource("/data/d.csv")).toURI(); File monCSV = new File(uri);
Si ton fichier est dans le répertoire data de ton application.
A+
Symon
|||Cypher||| wrote:
Bonjour à tous.
Je tourne en rond depuis un moment, je me permets donc de vous soumettre mon problème.
J'ai réalisé un "convertisseur" qui permet d'obtenir comme son nom l'indique des équivalences entre plusieurs "référentiels". Ce convertisseur fait appel à un fichier properties pour s'initialiser. l'un des lignes du fichier properties donne le chemin vers le fichier texte. file.source=C:eclipsev3workspaceeurolistbinoco_eurolist.csv Il va ensuite chercher ses données dans le fichier texte (CSV) qu'il charge en mémoire.
Ce convertisseur doit pouvoir fonctionner offline, la solution retenue a donc été de proposer le téléchargement d'une page html + applet + fichier CSV. J'ai donc réalisé que "file.source" devait être défini en relatif, plutôt qu'en absolu. Et là rien ne va plus... Le fichier properties pourtant défini de manière relative est bien chargé (quel que soit le mode d'execution : console ou applet). Pour charger ce fichier j'utilise la classe PropertyLoader (trouvée sur JavaWorld : http://www.javaworld.com/javaworld/javaqa/2003-08/01-qa-0808-property-p2.html). Pourtant, il me semble que je ne peux pas utiliser cette classe pour charger des ressources autres que des "properties".
J'ai donc développé la classe suivante :
public class InMemoInstrLoader { static Vector vct;
/*<P>load (once and for all) instruments list in memory from CSV file.</p>*/ public static Vector load(String relPathToSource){//String PathToSource if(vct==null) {//TODO improve to a real singleton pattern. FileInputStream inputStream; try { System.out.println("relPathToSource : "+relPathToSource);
inputStream = new FileInputStream(relPathToSource); //"binoco_eurolist.csv" BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String line; vct = new Vector(); while ((line = reader.readLine()) != null){ [etc...]
Mais, selon le contexte d'éxecution (mode console / applet) le chemin retourné est très différent (il va même chercher le fichier sur le "bureau" !) et provoque une FileNotFoudIOException.
Comment faire pour que le chemin relatif du fichier CSV soit bien interprété ?
Merci de votre aide.
PS : J'ai également essayé de passer par File() et la méthode associée getAbsolutePath(), mais sans succès. -- Olivier http://e-cologis.com le site communautaire des colocataires
Salut,
Utilise le class loader pour qu'il se charge de trouver ton fichier.
URI uri = Toto.class.getResource("/data/d.csv")).toURI();
File monCSV = new File(uri);
Si ton fichier est dans le répertoire data de ton application.
A+
Symon
|||Cypher||| wrote:
Bonjour à tous.
Je tourne en rond depuis un moment, je me permets donc de vous soumettre mon
problème.
J'ai réalisé un "convertisseur" qui permet d'obtenir comme son nom l'indique
des équivalences entre plusieurs "référentiels".
Ce convertisseur fait appel à un fichier properties pour s'initialiser.
l'un des lignes du fichier properties donne le chemin vers le fichier texte.
file.source=C:\eclipsev3\workspace\eurolist\bin\oco_eurolist.csv
Il va ensuite chercher ses données dans le fichier texte (CSV) qu'il charge
en mémoire.
Ce convertisseur doit pouvoir fonctionner offline, la solution retenue a
donc été de proposer le téléchargement d'une page html + applet + fichier
CSV.
J'ai donc réalisé que "file.source" devait être défini en relatif, plutôt
qu'en absolu.
Et là rien ne va plus...
Le fichier properties pourtant défini de manière relative est bien chargé
(quel que soit le mode d'execution : console ou applet).
Pour charger ce fichier j'utilise la classe PropertyLoader (trouvée sur
JavaWorld :
http://www.javaworld.com/javaworld/javaqa/2003-08/01-qa-0808-property-p2.html).
Pourtant, il me semble que je ne peux pas utiliser cette classe pour charger
des ressources autres que des "properties".
J'ai donc développé la classe suivante :
public class InMemoInstrLoader {
static Vector vct;
/*<P>load (once and for all) instruments list in memory from CSV
file.</p>*/
public static Vector load(String relPathToSource){//String PathToSource
if(vct==null) {//TODO improve to a real singleton pattern.
FileInputStream inputStream;
try {
System.out.println("relPathToSource : "+relPathToSource);
inputStream = new FileInputStream(relPathToSource);
//"bin\oco_eurolist.csv"
BufferedReader reader = new BufferedReader(new
InputStreamReader(inputStream));
String line;
vct = new Vector();
while ((line = reader.readLine()) != null){
[etc...]
Mais, selon le contexte d'éxecution (mode console / applet) le chemin
retourné est très différent (il va même chercher le fichier sur le "bureau"
!) et provoque une FileNotFoudIOException.
Comment faire pour que le chemin relatif du fichier CSV soit bien interprété
?
Merci de votre aide.
PS : J'ai également essayé de passer par File() et la méthode associée
getAbsolutePath(), mais sans succès.
--
Olivier
http://e-cologis.com
le site communautaire des colocataires
Utilise le class loader pour qu'il se charge de trouver ton fichier.
URI uri = Toto.class.getResource("/data/d.csv")).toURI(); File monCSV = new File(uri);
Si ton fichier est dans le répertoire data de ton application.
A+
Symon
|||Cypher||| wrote:
Bonjour à tous.
Je tourne en rond depuis un moment, je me permets donc de vous soumettre mon problème.
J'ai réalisé un "convertisseur" qui permet d'obtenir comme son nom l'indique des équivalences entre plusieurs "référentiels". Ce convertisseur fait appel à un fichier properties pour s'initialiser. l'un des lignes du fichier properties donne le chemin vers le fichier texte. file.source=C:eclipsev3workspaceeurolistbinoco_eurolist.csv Il va ensuite chercher ses données dans le fichier texte (CSV) qu'il charge en mémoire.
Ce convertisseur doit pouvoir fonctionner offline, la solution retenue a donc été de proposer le téléchargement d'une page html + applet + fichier CSV. J'ai donc réalisé que "file.source" devait être défini en relatif, plutôt qu'en absolu. Et là rien ne va plus... Le fichier properties pourtant défini de manière relative est bien chargé (quel que soit le mode d'execution : console ou applet). Pour charger ce fichier j'utilise la classe PropertyLoader (trouvée sur JavaWorld : http://www.javaworld.com/javaworld/javaqa/2003-08/01-qa-0808-property-p2.html). Pourtant, il me semble que je ne peux pas utiliser cette classe pour charger des ressources autres que des "properties".
J'ai donc développé la classe suivante :
public class InMemoInstrLoader { static Vector vct;
/*<P>load (once and for all) instruments list in memory from CSV file.</p>*/ public static Vector load(String relPathToSource){//String PathToSource if(vct==null) {//TODO improve to a real singleton pattern. FileInputStream inputStream; try { System.out.println("relPathToSource : "+relPathToSource);
inputStream = new FileInputStream(relPathToSource); //"binoco_eurolist.csv" BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String line; vct = new Vector(); while ((line = reader.readLine()) != null){ [etc...]
Mais, selon le contexte d'éxecution (mode console / applet) le chemin retourné est très différent (il va même chercher le fichier sur le "bureau" !) et provoque une FileNotFoudIOException.
Comment faire pour que le chemin relatif du fichier CSV soit bien interprété ?
Merci de votre aide.
PS : J'ai également essayé de passer par File() et la méthode associée getAbsolutePath(), mais sans succès. -- Olivier http://e-cologis.com le site communautaire des colocataires
|||Cypher|||
Bonjour Symon,
Merci pour ton code snippet, mais cela ne marche pas . La méthode "toURI()" notamment n'est pas reconnue. En revanche j'ai fini par trouver. Il s'agissait donc de transformer un chemin relatif en chemin absolu.
La solution (pour ceux que cela pourrait intéresser): URL url = ClassLoader.getSystemResource(relativePathToSource); String AbsolutePath = url.getFile();
Et voilà.
@+
-- http://123roommate.com/ la colocation en europe.
"Symon" a écrit dans le message de news:cugei2$4bv$
Salut,
Utilise le class loader pour qu'il se charge de trouver ton fichier.
URI uri = Toto.class.getResource("/data/d.csv")).toURI(); File monCSV = new File(uri);
Si ton fichier est dans le répertoire data de ton application.
A+
Symon
|||Cypher||| wrote:
Bonjour à tous.
Je tourne en rond depuis un moment, je me permets donc de vous soumettre mon
problème.
J'ai réalisé un "convertisseur" qui permet d'obtenir comme son nom l'indique
des équivalences entre plusieurs "référentiels". Ce convertisseur fait appel à un fichier properties pour s'initialiser. l'un des lignes du fichier properties donne le chemin vers le fichier texte.
file.source=C:eclipsev3workspaceeurolistbinoco_eurolist.csv Il va ensuite chercher ses données dans le fichier texte (CSV) qu'il charge
en mémoire.
Ce convertisseur doit pouvoir fonctionner offline, la solution retenue a donc été de proposer le téléchargement d'une page html + applet + fichier
CSV. J'ai donc réalisé que "file.source" devait être défini en relatif, plutôt
qu'en absolu. Et là rien ne va plus... Le fichier properties pourtant défini de manière relative est bien chargé
(quel que soit le mode d'execution : console ou applet). Pour charger ce fichier j'utilise la classe PropertyLoader (trouvée sur JavaWorld :
Pourtant, il me semble que je ne peux pas utiliser cette classe pour charger
des ressources autres que des "properties".
J'ai donc développé la classe suivante :
public class InMemoInstrLoader { static Vector vct;
/*<P>load (once and for all) instruments list in memory from CSV file.</p>*/ public static Vector load(String relPathToSource){//String PathToSource if(vct==null) {//TODO improve to a real singleton pattern. FileInputStream inputStream; try { System.out.println("relPathToSource : "+relPathToSource);
inputStream = new FileInputStream(relPathToSource); //"binoco_eurolist.csv" BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String line; vct = new Vector(); while ((line = reader.readLine()) != null){ [etc...]
Mais, selon le contexte d'éxecution (mode console / applet) le chemin retourné est très différent (il va même chercher le fichier sur le "bureau"
!) et provoque une FileNotFoudIOException.
Comment faire pour que le chemin relatif du fichier CSV soit bien interprété
?
Merci de votre aide.
PS : J'ai également essayé de passer par File() et la méthode associée getAbsolutePath(), mais sans succès. -- Olivier http://e-cologis.com le site communautaire des colocataires
Bonjour Symon,
Merci pour ton code snippet, mais cela ne marche pas . La méthode "toURI()"
notamment n'est pas reconnue.
En revanche j'ai fini par trouver. Il s'agissait donc de transformer un
chemin relatif en chemin absolu.
La solution (pour ceux que cela pourrait intéresser):
URL url = ClassLoader.getSystemResource(relativePathToSource);
String AbsolutePath = url.getFile();
Et voilà.
@+
--
http://123roommate.com/
la colocation en europe.
"Symon" <symon@tatouage.fr> a écrit dans le message de
news:cugei2$4bv$1@apollon.grec.isp.9tel.net...
Salut,
Utilise le class loader pour qu'il se charge de trouver ton fichier.
URI uri = Toto.class.getResource("/data/d.csv")).toURI();
File monCSV = new File(uri);
Si ton fichier est dans le répertoire data de ton application.
A+
Symon
|||Cypher||| wrote:
Bonjour à tous.
Je tourne en rond depuis un moment, je me permets donc de vous soumettre
mon
problème.
J'ai réalisé un "convertisseur" qui permet d'obtenir comme son nom
l'indique
des équivalences entre plusieurs "référentiels".
Ce convertisseur fait appel à un fichier properties pour s'initialiser.
l'un des lignes du fichier properties donne le chemin vers le fichier
texte.
file.source=C:\eclipsev3\workspace\eurolist\bin\oco_eurolist.csv
Il va ensuite chercher ses données dans le fichier texte (CSV) qu'il
charge
en mémoire.
Ce convertisseur doit pouvoir fonctionner offline, la solution retenue a
donc été de proposer le téléchargement d'une page html + applet +
fichier
CSV.
J'ai donc réalisé que "file.source" devait être défini en relatif,
plutôt
qu'en absolu.
Et là rien ne va plus...
Le fichier properties pourtant défini de manière relative est bien
chargé
(quel que soit le mode d'execution : console ou applet).
Pour charger ce fichier j'utilise la classe PropertyLoader (trouvée sur
JavaWorld :
Pourtant, il me semble que je ne peux pas utiliser cette classe pour
charger
des ressources autres que des "properties".
J'ai donc développé la classe suivante :
public class InMemoInstrLoader {
static Vector vct;
/*<P>load (once and for all) instruments list in memory from CSV
file.</p>*/
public static Vector load(String relPathToSource){//String PathToSource
if(vct==null) {//TODO improve to a real singleton pattern.
FileInputStream inputStream;
try {
System.out.println("relPathToSource : "+relPathToSource);
inputStream = new FileInputStream(relPathToSource);
//"bin\oco_eurolist.csv"
BufferedReader reader = new BufferedReader(new
InputStreamReader(inputStream));
String line;
vct = new Vector();
while ((line = reader.readLine()) != null){
[etc...]
Mais, selon le contexte d'éxecution (mode console / applet) le chemin
retourné est très différent (il va même chercher le fichier sur le
"bureau"
!) et provoque une FileNotFoudIOException.
Comment faire pour que le chemin relatif du fichier CSV soit bien
interprété
?
Merci de votre aide.
PS : J'ai également essayé de passer par File() et la méthode associée
getAbsolutePath(), mais sans succès.
--
Olivier
http://e-cologis.com
le site communautaire des colocataires
Merci pour ton code snippet, mais cela ne marche pas . La méthode "toURI()" notamment n'est pas reconnue. En revanche j'ai fini par trouver. Il s'agissait donc de transformer un chemin relatif en chemin absolu.
La solution (pour ceux que cela pourrait intéresser): URL url = ClassLoader.getSystemResource(relativePathToSource); String AbsolutePath = url.getFile();
Et voilà.
@+
-- http://123roommate.com/ la colocation en europe.
"Symon" a écrit dans le message de news:cugei2$4bv$
Salut,
Utilise le class loader pour qu'il se charge de trouver ton fichier.
URI uri = Toto.class.getResource("/data/d.csv")).toURI(); File monCSV = new File(uri);
Si ton fichier est dans le répertoire data de ton application.
A+
Symon
|||Cypher||| wrote:
Bonjour à tous.
Je tourne en rond depuis un moment, je me permets donc de vous soumettre mon
problème.
J'ai réalisé un "convertisseur" qui permet d'obtenir comme son nom l'indique
des équivalences entre plusieurs "référentiels". Ce convertisseur fait appel à un fichier properties pour s'initialiser. l'un des lignes du fichier properties donne le chemin vers le fichier texte.
file.source=C:eclipsev3workspaceeurolistbinoco_eurolist.csv Il va ensuite chercher ses données dans le fichier texte (CSV) qu'il charge
en mémoire.
Ce convertisseur doit pouvoir fonctionner offline, la solution retenue a donc été de proposer le téléchargement d'une page html + applet + fichier
CSV. J'ai donc réalisé que "file.source" devait être défini en relatif, plutôt
qu'en absolu. Et là rien ne va plus... Le fichier properties pourtant défini de manière relative est bien chargé
(quel que soit le mode d'execution : console ou applet). Pour charger ce fichier j'utilise la classe PropertyLoader (trouvée sur JavaWorld :
Pourtant, il me semble que je ne peux pas utiliser cette classe pour charger
des ressources autres que des "properties".
J'ai donc développé la classe suivante :
public class InMemoInstrLoader { static Vector vct;
/*<P>load (once and for all) instruments list in memory from CSV file.</p>*/ public static Vector load(String relPathToSource){//String PathToSource if(vct==null) {//TODO improve to a real singleton pattern. FileInputStream inputStream; try { System.out.println("relPathToSource : "+relPathToSource);
inputStream = new FileInputStream(relPathToSource); //"binoco_eurolist.csv" BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String line; vct = new Vector(); while ((line = reader.readLine()) != null){ [etc...]
Mais, selon le contexte d'éxecution (mode console / applet) le chemin retourné est très différent (il va même chercher le fichier sur le "bureau"
!) et provoque une FileNotFoudIOException.
Comment faire pour que le chemin relatif du fichier CSV soit bien interprété
?
Merci de votre aide.
PS : J'ai également essayé de passer par File() et la méthode associée getAbsolutePath(), mais sans succès. -- Olivier http://e-cologis.com le site communautaire des colocataires