Java : écrire dans un fichier
Résolu/Fermé
otis182
Messages postés
18
Date d'inscription
jeudi 4 septembre 2003
Statut
Membre
Dernière intervention
14 avril 2005
-
8 déc. 2004 à 20:46
Clem-Tech Messages postés 1 Date d'inscription mercredi 14 juin 2017 Statut Membre Dernière intervention 14 juin 2017 - 14 juin 2017 à 14:43
Clem-Tech Messages postés 1 Date d'inscription mercredi 14 juin 2017 Statut Membre Dernière intervention 14 juin 2017 - 14 juin 2017 à 14:43
A voir également:
- Java : écrire dans un fichier
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Java décompiler - Télécharger - Langages
- Waptrick jeux pes 2016 java - Forum logiciel systeme
11 réponses
public void ecrire(String nomFic, String texte) { //on va chercher le chemin et le nom du fichier et on me tout ca dans un String String adressedufichier = System.getProperty("user.dir") + "/"+ nomFic; //on met try si jamais il y a une exception try { /** * BufferedWriter a besoin d un FileWriter, * les 2 vont ensemble, on donne comme argument le nom du fichier * true signifie qu on ajoute dans le fichier (append), on ne marque pas par dessus */ FileWriter fw = new FileWriter(adressedufichier, true); // le BufferedWriter output auquel on donne comme argument le FileWriter fw cree juste au dessus BufferedWriter output = new BufferedWriter(fw); //on marque dans le fichier ou plutot dans le BufferedWriter qui sert comme un tampon(stream) output.write(texte); //on peut utiliser plusieurs fois methode write output.flush(); //ensuite flush envoie dans le fichier, ne pas oublier cette methode pour le BufferedWriter output.close(); //et on le ferme System.out.println("fichier créé"); } catch(IOException ioe){ System.out.print("Erreur : "); ioe.printStackTrace(); } }
Une class bien utile pour la lecture et écriture de données d'un fichier à un autre (en JAVA).
import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import java.util.Scanner; public class Utilities { private static void writeFile(String fileContent, String filePathOutput) { try { // BufferedWriter a besoin d'un FileWriter, les 2 vont ensemble, on // donne comme argument le nom du fichier et false signifie qu'on // écrase le contenu du fichier et qu'on ne fait pas d'append sur le // contenu. FileWriter fileWriter = new FileWriter(filePathOutput, false); // Le BufferedWriter output auquel on donne comme argument le // fileWriter écrase le contenu déjà présent dans le fichier. BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); // On écrit dans le fichier ou plutot dans le bufferedWriter qui // sert de tampon(stream) bufferedWriter.write(fileContent); bufferedWriter.flush(); bufferedWriter.close(); System.out.println("Fichier créé"); } catch (IOException ioe) { System.err .println("Erreur levée de type IOException au niveau de la méthode " + "writeFile(...) : "); ioe.printStackTrace(); } }// End writeFile(...) public static void readFile(String filePathInput, String filePathOutput) { Scanner scanner = null; String line = null; StringBuffer str = new StringBuffer(); try { scanner = new Scanner(new File(filePathInput)); // On boucle sur chaque champ detecté while (scanner.hasNextLine()) { line = scanner.nextLine(); if (line != null) str.append(line + "\r\n"); } scanner.close(); } catch (FileNotFoundException e) { System.err.println("Erreur levée de type FileNotFoundException" + " au niveau de la méthode " + "readFile(...) : "); e.printStackTrace(); } Utilities.writeFile(str.toString(), filePathOutput); }// End readFile(...) public static void formatSQLFileContentToIntegrateThisInTheJAVACode( String filePathInput, String filePathOutput) { Scanner scanner = null; String line = null; StringBuffer str = new StringBuffer(); try { scanner = new Scanner(new File(filePathInput)); // On boucle sur chaque champ detecté while (scanner.hasNextLine()) { line = scanner.nextLine(); if (line != null) str.append(".append(\"" + line + " \")\r\n"); } scanner.close(); } catch (FileNotFoundException e) { System.err .println("Erreur levée de type FileNotFoundException" + " au niveau de la méthode " + "formatSQLFileContentToIntegrateThisInTheJAVACode(...) : "); e.printStackTrace(); } Utilities.writeFile(str.toString(), filePathOutput); }// End formatSQLFileContentToIntegrateThisInTheJAVACode(...) }// End public class Utilities
walidovich_85
Messages postés
608
Date d'inscription
mardi 12 janvier 2010
Statut
Membre
Dernière intervention
25 octobre 2015
73
22 oct. 2012 à 17:58
22 oct. 2012 à 17:58
ça marche parfaitement.
il faut juste créer des instances de "Utilities" dans une class main et de jouer avec les fichiers.
il faut juste créer des instances de "Utilities" dans une class main et de jouer avec les fichiers.
choubaka
Messages postés
39404
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
21 novembre 2024
2 102
8 déc. 2004 à 22:18
8 déc. 2004 à 22:18
http://perso.wanadoo.fr/jm.doudoux/java/tutorial/chap019.htm#chap_19
Chouba,
Pochard d'assaut ..
Chouba,
Pochard d'assaut ..
Deux manières différentes de lire un fichier et une manière pour écrire un fichier (via le langage JAVA) :
package com.test; import java.io.*; public class A { public static void main(String[] args) { String pathFrom = "c:\\folderFrom\\jaros.jar"; byte[] tab = lire1(pathFrom); String pathTo = "C:\\folderTo\\jaros.jar"; ecrire(pathTo, tab); System.out.println("test"); } public static byte[] lire1(String pathFrom) { // Lire le fichier byte[] tabReadData = null; File file = new File(pathFrom); try { FileInputStream fin = new FileInputStream(file); tabReadData = new byte[(int) file.length()]; fin.read(tabReadData); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return tabReadData; } public static byte[] lire2(String pathFrom) { File file = new File(pathFrom); byte[] fileData = new byte[(int) file.length()]; DataInputStream dis; try { dis = new DataInputStream(new FileInputStream(file)); dis.readFully(fileData); dis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return fileData; } public static void ecrire(String pathTo, byte[] tab) { try { FileOutputStream fos = new FileOutputStream(pathTo); fos.write(tab); fos.close(); } catch (FileNotFoundException ex) { ex.printStackTrace(); } catch (IOException ioe) { ioe.printStackTrace(); } } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Je viens un peu tard par rapport aux messages mais on ne sait jamais :)
Déjà merci beaucoup Aminata pour ta réponse, j'ai cherché pendant longtemps comment le faire mais je dois avouer que je ne comprenais pas grand chose je début en Java et j'ai un projet à faire pour mon BTS IG dans ce langage ^^"
Il y a juste un soucis, dans le texte que je souhaite sauvegarder, s'il y a des sauts de lignes, ils ne sont pas pris en compte lors de la sauvegarde, pourtant j'ai testé avec un System.out.println(monTexte); ça affichait bien le texte avec les sauts de lignes :S
Pourrais-tu m'aider?
Merci d'avance.
Je viens un peu tard par rapport aux messages mais on ne sait jamais :)
Déjà merci beaucoup Aminata pour ta réponse, j'ai cherché pendant longtemps comment le faire mais je dois avouer que je ne comprenais pas grand chose je début en Java et j'ai un projet à faire pour mon BTS IG dans ce langage ^^"
Il y a juste un soucis, dans le texte que je souhaite sauvegarder, s'il y a des sauts de lignes, ils ne sont pas pris en compte lors de la sauvegarde, pourtant j'ai testé avec un System.out.println(monTexte); ça affichait bien le texte avec les sauts de lignes :S
Pourrais-tu m'aider?
Merci d'avance.
En ce qui concerne les sauts de ligne j'ai trouvé assez rapidement finalement, il suffisait de faire une boucle qui parcourait la chaine de caractères lettre par lettre et dès qu'il trouvait le code ASCII 10 ou 13 (pour le saut de ligne donc) il insérait un newLine.
Salut papillon
si tu récupères un String au lieu d'un int il faut faire ça :
int i=Integer.parseInt(s);
où s est le String récupéré dans le fichier.
Et là tu as stocké ton entier dans i.
Attention à être sûr que tu as un entier dans s, sinon tu vas
lever une exception Illegal Number Format Exception ou un truc comme ça.
si tu récupères un String au lieu d'un int il faut faire ça :
int i=Integer.parseInt(s);
où s est le String récupéré dans le fichier.
Et là tu as stocké ton entier dans i.
Attention à être sûr que tu as un entier dans s, sinon tu vas
lever une exception Illegal Number Format Exception ou un truc comme ça.
togodo
Messages postés
148
Date d'inscription
vendredi 19 septembre 2008
Statut
Membre
Dernière intervention
19 août 2009
8
17 mai 2009 à 20:06
17 mai 2009 à 20:06
http://java.sun.com/j2se/1.4.2/docs/api/java/io/PrintWriter.html
http://java.sun.com/j2se/1.4.2/docs/api/java/io/FileWriter.html
http://java.sun.com/j2se/1.4.2/docs/api/java/io/FileWriter.html
choubaka
Messages postés
39404
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
21 novembre 2024
2 102
8 déc. 2004 à 22:15
8 déc. 2004 à 22:15
Salut
http://java.sun.com/docs/books/tutorial/essential/io/
Chouba,
Pochard d'assaut ..
http://java.sun.com/docs/books/tutorial/essential/io/
Chouba,
Pochard d'assaut ..
papillon2000
Messages postés
106
Date d'inscription
samedi 13 décembre 2008
Statut
Membre
Dernière intervention
12 janvier 2010
15
11 avril 2009 à 20:23
11 avril 2009 à 20:23
je veux ecrire une valeur entiere (int )dan un fichier mais le probléme je récupére pas la bonne valeur mais je récupére un code aul ieu d'une valuere entiere.
18 oct. 2010 à 17:11
11 mai 2012 à 23:31
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class Writer{
public static void WriteFile (String Text, String directoryName, String fileName) throws IOException{
String directoryPath = System.getProperty("user.dir") + "\\" + directoryName + "\\";
String filePath = System.getProperty("user.dir") + "\\" + directoryName + "\\" + fileName ;
//Getting filePath and directoryPath with the file name and the directory name.
File file = new File(filePath);
File dir = new File(directoryPath);
if (dir.exists() && dir.isDirectory() && file.exists()){
try {
FileWriter fw = new FileWriter(filePath, true);
BufferedWriter output = new BufferedWriter(fw);
output.write(Text);
output.flush();
output.close();
System.out.println("Text written!");
} catch (IOException ioe) {
// TODO Auto-generated catch block
ioe.printStackTrace();
} catch (java.lang.NullPointerException e){
System.out.println ("Error");
e.printStackTrace();
}
}
//Write the text if the file is already created
else{
if (dir.exists() && dir.isDirectory()){
file.createNewFile();
System.out.println("New file at " + filePath);
//Create a new file if the directory already exists, but neither the file
try {
FileWriter fw = new FileWriter(filePath, true);
BufferedWriter output = new BufferedWriter(fw);
output.write(Text);
output.flush();
output.close();
System.out.println("Text written!");
} catch (IOException ioe) {
// TODO Auto-generated catch block
ioe.printStackTrace();
} catch (java.lang.NullPointerException e){
System.out.println ("Error");
e.printStackTrace();
}
//Write the text in the file
}
else{
dir.mkdir();
System.out.println("New directory at " + directoryPath);
file.createNewFile();
System.out.println("New file at " + filePath);
try {
FileWriter fw = new FileWriter(filePath, true);
BufferedWriter output = new BufferedWriter(fw);
output.write(Text);
output.flush();
output.close();
System.out.println("Text written!");
} catch (IOException ioe) {
// TODO Auto-generated catch block
ioe.printStackTrace();
} catch (java.lang.NullPointerException e){
System.out.println ("Error");
e.printStackTrace();
}
}
}
}
}
Désolé je l'ai mis en anglais..
Je l'ai écrit et je pense que ca devrait marcher.. En tout cas ca marche avec moi
12 mai 2012 à 00:11
16 mai 2012 à 18:02
1) j'avoue que je n'ai pas regardé la date
2) ça ne me coûte rien de mettre mon post
3) moi aussi j'ai un peu galéré pour faire ce code, donc si je peux éviter à quelqu'un d'autre de galérer, tant mieux vu que
4) ce forum est le premier sur lequel on tombe si on fait une recherche google...
Bref, je n'aiderai pas otis182, mais j'espère pouvoir aider quelqu'un d'autre qui veut écrire dans un fichier créé automatiquement...
16 mai 2012 à 18:05