Lire un fichier temporaire - Java - Programmation
Marsh Posté le 31-03-2004 à 13:26:49
lire la javadoc de la méthode createTempFile devrait t'aider
Marsh Posté le 31-03-2004 à 13:28:47
Biensur que je l'ai lu , c assez clair en +
public static File createTempFile(String prefix,
String suffix,
File directory)
throws IOExceptionCreates a new empty file in the specified directory, using the given prefix and suffix strings to generate its name. If this method returns successfully then it is guaranteed that:
The file denoted by the returned abstract pathname did not exist before this method was invoked, and
Neither this method nor any of its variants will return the same abstract pathname again in the current invocation of the virtual machine.
This method provides only part of a temporary-file facility. To arrange for a file created by this method to be deleted automatically, use the deleteOnExit() method.
The prefix argument must be at least three characters long. It is recommended that the prefix be a short, meaningful string such as "hjb" or "mail". The suffix argument may be null, in which case the suffix ".tmp" will be used.
Marsh Posté le 31-03-2004 à 13:42:42
Citation : |
Citation : |
Si meme après avoir lu la doc tu ne comprends tjrs pas, t'es mal barre
Tu sais ce que c'est un suffixe et un préfixe? La méthode en fait génère un fichier avec un nom qui est unique par JVM en tenant compte du suffixe et du préfixe que tu passes (.tmp par défaut)
donc là c'est musdirXXXXXX.tmp où XXXXX est un truc généré par la JVM pour éviter d'avoir un clash avec un fichier existant.
Si tu veux créer un ficher avec un nom complete crée le normallement.
Marsh Posté le 31-03-2004 à 13:48:32
ok mais ca c'est pas vraiment le problem , mon problem ce de pas pouvoir lire dans le fichier temporaire alors qu'avec un type sous dos ca marche!!pourquoi j'arrive pas a acceder au fichier temporaire ???
Marsh Posté le 31-03-2004 à 13:58:16
Qu'est ce que tu appelles lire? Via ta classe. Si oui quelle est l'exception.
Parce que d'après ce que je vois le fichier est effacé à la fin.
Marsh Posté le 31-03-2004 à 14:11:30
oui c vrai, normalement il doit etre efface a la fin de l'execution avec tmp.deleteOnExit();
Mais c'est pas le cas , il s'efface pas et je le trouve dans le dossier du projet. Le programme a bien copie dedans le fichier music.txt.
Maintenant pour ta question Qu'est ce que tu appelles lire? je ve l'afficher pour verifier que j'ai bien acces aux donnees qui sont a l'interieur pour trier le dihcier music.txt.
Voici la boucle qui normlalement devrai l'afficher :
Code :
|
j'ai essayer de lire le fichier music.txt comme ca et ca marche parfaitement.
Ici il rentre meme pas dans while car String ligne est toujrours null et c'est ca ce que je comprend pas , pourquoi j'y ai pas acces comme le fichier txt.
Marsh Posté le 31-03-2004 à 14:14:02
Désolé mais tu es trop confus, je ne comprends rien du tout. Tu le trouve dans le dossier du projet alors qu'il doit etre créer dans le rep temporaire, il n'est pas effacé et j'ai toujours pas compris ce que tu veux dire j'arrive pas à le lire (avec quoi / comment)
enfin bon je passe la main
Marsh Posté le 31-03-2004 à 14:18:19
DarkLord a écrit : Désolé mais tu es trop confus, je ne comprends rien du tout. Tu le trouve dans le dossier du projet alors qu'il doit etre créer dans le rep temporaire, il n'est pas effacé et j'ai toujours pas compris ce que tu veux dire j'arrive pas à le lire (avec quoi / comment) |
il ya deux constructeur pour la methode CreateTempFile , moi j'utilise celle avec 3 arguments pour modifier l'emplacement ou jvm cree le fichier tmp , je fé en corte qu'il le cree dans mon dossier de projet c tt et ca se voit tres vite dans le code source.
Marsh Posté le 31-03-2004 à 16:00:05
j'ai fini par comprendre , il falait fermer le flux sur le fichier temporaire juste apres qu'on copie dedans le fichier txt sinon il reste en cour d'utilisation et donc je pouvé pas le lire.
Marsh Posté le 31-03-2004 à 23:07:48
brethold a écrit : j'ai fini par comprendre , il falait fermer le flux sur le fichier temporaire juste apres qu'on copie dedans le fichier txt sinon il reste en cour d'utilisation et donc je pouvé pas le lire. |
ouais ca c'était le 1er problème ...
le 2e problème c'est ca :
FileWriter out=new FileWriter(tmp.getName());
pkoi tu fais un getName() ? getName te retourne uuniquement le nom du fichier => ce sera un chemin relatif => ca va utiliser le répertoire par défaut pour créer le fichier et pas le répertoire temporaire. C'es pour ca que tu le trouves dans le dossier de ton projet
fait simplement :
FileWriter out=new FileWriter(tmp);
Marsh Posté le 31-03-2004 à 12:57:08
Salut a tous , je vais etre bref voila donc mon problem :
je dois copier un fichier txt dans un copier tmp afin de trier le fichier txt sans le modifier.
J'ai reussi donc a creer le fichier temporaire comme ca:
le fichier temporaire se creer bien mais pas au nom que je ve cad musdir.tmp mais comme musdir18547.tmp. Ceci ne pose aucun souci mais je sais pas pourquoi il le creer comme ca. Le probleme c'est que j' arrive pas a lire le fichier temporaire (ni en mode char ni en mode bin)
Est ce que kk1 sait t'il ce qui me monque ou ce que j'ai oublie de faire.
Mici d'avance pour vos reponses.
Voici le code source du programme -->
ps: j'arrive a lire le fichier sous dos!!
Message édité par brethold le 31-03-2004 à 13:05:23