Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1578 connectés 

 


Dernière réponse
Sujet : Comment ouvrir un fichier existant en écriture en Java ?
DrKoidNeuf Je ne remets pas en cause l'exemple de Roswell, qui fonctionne très bien, par contre, je viens de tester ton code darklord, moyennant des p'tites modifs (Désolé pour l'indentation) :
 
import java.io.*;
import java.util.*;
 
public class Test
{
public static void main(String[] args)
{
tryss
{ss
FileOutputStream fluxOut=new FileOutputStream"fichier.txt" );ss
OutputStreamWriter readFluxOut=new OutputStreamWriterfluxOut);ss
BufferedWriter buffFluxOut=new BufferedWriter(readFluxOut);ssss
buffFluxOut.write("La petite maison dans la prairie" );ss buffFluxOut.close();
readFluxOut.close();
fluxOut.close();
}
catch (IOException ioe)
{
System.out.println("Message : "+ioe.getMessage());
}
}
}
 
Et là, tu constateras comme moi que 2 exécutions d'à filer, ne permettent pas d'écrire à la suite du fichier.
 
Je n'ai malheureusement plus le code exact, vu que je travaille dans le même fichier, mais ça ressemblait à cela sans passer par un buffer.
 
Je te donne un extrait de mon code actuel, et qui fonctionne :
 
import java.io.*;
import java.util.*;
 
public class Test
{
public static void main(String[] args)
{
tryss
{ss
FileWriter fw=new FileWriter("fichier.txt",true);
fw.write("La petite maison dans la prairie" );
fw.close();
}
catch (IOException ioe)
{
System.out.println("Message : "+ioe.getMessage());
}
}
}
 
Je cherchais juste à résoudre mon problème, c'est tout.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
DrKoidNeuf Je ne remets pas en cause l'exemple de Roswell, qui fonctionne très bien, par contre, je viens de tester ton code darklord, moyennant des p'tites modifs (Désolé pour l'indentation) :
 
import java.io.*;
import java.util.*;
 
public class Test
{
public static void main(String[] args)
{
tryss
{ss
FileOutputStream fluxOut=new FileOutputStream"fichier.txt" );ss
OutputStreamWriter readFluxOut=new OutputStreamWriterfluxOut);ss
BufferedWriter buffFluxOut=new BufferedWriter(readFluxOut);ssss
buffFluxOut.write("La petite maison dans la prairie" );ss buffFluxOut.close();
readFluxOut.close();
fluxOut.close();
}
catch (IOException ioe)
{
System.out.println("Message : "+ioe.getMessage());
}
}
}
 
Et là, tu constateras comme moi que 2 exécutions d'à filer, ne permettent pas d'écrire à la suite du fichier.
 
Je n'ai malheureusement plus le code exact, vu que je travaille dans le même fichier, mais ça ressemblait à cela sans passer par un buffer.
 
Je te donne un extrait de mon code actuel, et qui fonctionne :
 
import java.io.*;
import java.util.*;
 
public class Test
{
public static void main(String[] args)
{
tryss
{ss
FileWriter fw=new FileWriter("fichier.txt",true);
fw.write("La petite maison dans la prairie" );
fw.close();
}
catch (IOException ioe)
{
System.out.println("Message : "+ioe.getMessage());
}
}
}
 
Je cherchais juste à résoudre mon problème, c'est tout.
darklord22 Roswell te donne un exemple qui est 100% correct. Il te suffit simplement de remplacer Input par Output. J'aimerai avoir ton code parce que je n'arrive toujours pas à comprendre comment tu fais pour écraser (créer) un fichier qui existe déjà!
 
Quand au buffer, c'est une couche supplémentaire qui permet d'améliorer les performances. Voici donc l'exemple pour l'écriture:
 
FileOutputStream fluxOut=new FileOutputtStream("fichier.txt" );ss
OutputStreamReader readFluxOut=new OutputStreamReader(fluxOut);ss
BufferedWriter buffFluxOut=new BufferedWriter(readFluxOut);ss
tryss
{ss
ss//etc..ss
}
 
Allez sans rancune, Mister C++

 

DrKoidNeuf Hum... ouais... merci pour ta réponse Roswell_, mais ce n'est pas une ouverture en lecture que je voulais, mais en écriture (pour un fichier déjà existant et que je ne veux pas écraser).
 
Toutefois dans ton exemple, quel est l'intérêt de passer par un BufferedReader ? ne peut-on pas se contenter du FileInputStream ?
 
Merci qu'en même.
Roswell_ FileInputStream fluxIn=new FileInputStream("fichier.txt" );
InputStreamReader readFluxIn=new InputStreamReader(fluxIn);
BufferedReader buffFluxIn=new BufferedReader(readFluxIn);
 
try
{
ssString str=buffFluxIn.readLine();
//etc..
}
DrKoidNeuf Effectivement, c'est pour ouvrir un fichier .txt et, au final, écrire avec plusieurs threads dedans.
J'ai vu qu'il était possible de le faire en utilisant la classe FileOutputStream(String name, boolean append).
 
Par contre en n'utilisant que la classe File, j'aimerais bien qu'on m'explique.
 
Merci.
darklord22 Comment tu fais? Parce que c'est vraiment simple avec la classe File. Envoie ton code pour voir
 
S.

 

stalker Tu veux ouvrir quoi un fichier .txt par exemple et pouvoir le modifier ?
DrKoidNeuf Ancien programmeur en C++, je me mets progressivement à la programmation java.
Et, je cales devant un problème d'ouverture de fichier (déjà existant) en écriture, sans qu'à chaque exécution, ce dernier soit recréé.
 
Merci d'avance.

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)