Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : correction code,ecrit dans une fichier dans un endroit precis [ Divers / Général ] (fraisa1985)

vendredi 21 mars 2008 à 23:19:19 | correction code,ecrit dans une fichier dans un endroit precis

fraisa1985



Salut a tous,
J'ai prgrammé une fonction ecrire_dans_une_fichier(String path_fichier,String string_ajouté,int position)
qui permet d'ajouter une string a une fichier dans un endroit precis sans ecraser aucune chose(car j'ai trouvé la classe RandomAccessFile mais son probleme qu'elle ecrase les cacactéres situé a la position position
:si vous connaissez d'autres moyens pour faire ce que j'ai fait c'est du bienvenue ).
Cette foction est valable pour une seule appel,cependant lorsque je l'utilise plus qu'une fois elle affiche des resultats bizarres et voila
pour cela un class qui illustre cette probleme:
code:
package convertisseur;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.RandomAccessFile;

public class File_youssef1985 extends File {
public BufferedReader src=null;
 public BufferedWriter dest=null;
 
 
 public static void ecrire_fichier(RandomAccessFile f,String s,int pos) throws IOException
 {
  
  
  
  
 File temp1= new File("temp1meguebliyoussef.txt");
  
File temp2=new File("temp2meguebliyoussef.txt");
 
 RandomAccessFile partie1=new RandomAccessFile(temp1,"rw");
 
 RandomAccessFile partie2=new RandomAccessFile( temp2,"rw");
 
 copier(f,partie1,0,pos);
  
    copier(f,partie2,pos,f.length());
 
   partie1.seek(partie1.length());
  
    partie1.writeBytes(s);
 
    partie1.seek(partie1.length());
 
    int c;
 
    partie2.seek(0);
 
   while((c=partie2.read())!=-1)
  
   {
  
    partie1.write(c);
  
   }
 
 
//   copier(partie1,f,0,f.length());
   partie1.seek(0);
   f.seek(0);
   while((c=partie1.read())!=-1)
   
   {
  
    f.write(c);
  
   }
 temp1.deleteOnExit();
 temp2.deleteOnExit();
   partie1.close();
     
   partie2.close();
     
   f.close(); 
     
  
  

 }
 public static void  copie_BufferedReader (BufferedReader original,BufferedWriter copie) throws IOException {
  int c;
  while ((c = original.read()) != -1)
  copie.write(c);

  
  original.close();
  copie.close();
  }


 public static boolean copier( RandomAccessFile sourceFile, RandomAccessFile destination ,int positiondebut,long positionfin)
 {
         boolean resultat = false;
        
         // Declaration des flux
        
         java.io.FileOutputStream destinationFile=null;
        
         try {
                 // Création du fichier :
                
                 // Ouverture des flux
                
                
                 // Lecture par segment de 0.5Mo
                 byte buffer[]=new byte[1*1];
                 int nbLecture;
                 sourceFile.seek(positiondebut);
               
                 while( (nbLecture = sourceFile.read()) != -1 && sourceFile.getFilePointer()<=positionfin) {
                  {  
                  
                   
                   destination.write(nbLecture);                  
                  }}
                
                 // Copie réussie
                 resultat = true;
         } catch( java.io.FileNotFoundException f ) {
                
         } catch( java.io.IOException e ) {
                
         } finally {
                 // Quoi qu'il arrive, on ferme les flux
                 try {
                        
                 } catch(Exception e) { }
                 try {
                      
                 } catch(Exception e) { }
         }
         return( resultat );
 }
 
 
 
 public static boolean copier( File source, File destination )
 {
         boolean resultat = false;
        
         // Declaration des flux
         java.io.FileInputStream sourceFile=null;
         java.io.FileOutputStream destinationFile=null;
        
         try {
                 // Création du fichier :
                 destination.createNewFile();
                
                 // Ouverture des flux
                 sourceFile = new java.io.FileInputStream(source);
                 destinationFile = new java.io.FileOutputStream(destination);
                
                 // Lecture par segment de 0.5Mo
                 byte buffer[]=new byte[512*1024];
                 int nbLecture;
                
                 while( (nbLecture = sourceFile.read(buffer)) != -1 ) {
                         destinationFile.write(buffer, 0, nbLecture);
                 }
                
                 // Copie réussie
                 resultat = true;
         } catch( java.io.FileNotFoundException f ) {
                
         } catch( java.io.IOException e ) {
                
         } finally {
                 // Quoi qu'il arrive, on ferme les flux
                 try {
                         sourceFile.close();
                 } catch(Exception e) { }
                 try {
                         destinationFile.close();
                 } catch(Exception e) { }
         }
         return( resultat );
 }
 public static void ecrire_dans_une_fichier(String s,String t,int pos) throws IOException
 {
  RandomAccessFile g=new RandomAccessFile(s,"rw");

  //copier(g,new RandomAccessFile("temp1.txt","rw"),0,g.length());
  ecrire_fichier(g,t,pos);
 g.close();
  
  
 }
public static void main(String[] args) throws IOException, IOException
{
 
  
 
 ecrire_dans_une_fichier("youcef120.html","chaine ajouté1",17);
 ecrire_dans_une_fichier("youcef120.html","chaine ajouté2",33);
}
}


samedi 22 mars 2008 à 10:22:07 | Re : correction code,ecrit dans une fichier dans un endroit precis

gouessej

Je préfère ça personnellement :

http://www.rgagnon.com/javadetails/java-0073.html

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java



Cette discussion est classé dans : fichier, java, io, partie1, randomaccessfile


Répondre à ce message

Sujets en rapport avec ce message

compilation *.java [ par optimal ] bonjour, pr l'instant je n'ai fait que des applets (je transforme un fichier.txt en fichier.java, meme chose pour creer compile.bat, et le resultat e lire un fichier [ par amel2006 ] bonjour, j'ai le programme suivant: Code: < Progression avec progressbar lors de copie de fichier [ par inquisitor87 ] Bonsoir à tous et toutes. Je travail actuellement à un navigateur de fichier avancé, mais je bloque bêtement sur quelque chose qui, j'en suis sûr, doi java io [ par rabijava ] Bonjour,Je suis en train d'ecrire un programme java dont le but est de traiter des données, de calculer et fournir des résultats, ensuite de stocker c signer un fichier source java [ par NeT0n ] Bonjour,Je souhaiterai pouvoir signer (ou quelque chose dans le genre) un fichier java dont je suis l'auteur pour etre sur qu'une autre personne ne pu java [ par gadour_esz ] salut,Désolé pour ma dernière question je l'ai mal posé .Ma question est la suivante :Comment je puisse enregistre dans un programme java un fichier d java [ par gadour_esz ] salut,j'ai un problème avec l'exécutio d'un fichier binaire ( d'installation ) à travers un programme java .j'ai utulisé javaRunTime.Dans mon code j'a Envoi fichier.bat avec java [ par alias100 ] Bonjour, tous le monde J'ai deux machines Windows A et B connecté en reseau: B contient un serveur SSH Problème connection SQL Serveur [ par plop3000 ] Bonjour,C'est la premiere fois que j'essaie de faire une connexion à SQL Server 2005 avec java, et je n'y parviens pas; Je ne suis pas sur de cer qu'i Fichier Java [ par CicinhoRaul ] Salut à tous et à toutes, j'ai un gros problème :  j'ai un formulaire à faire en java avec des boutons radios, et je dois écrire tout ce ke j'entre da


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.