IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Traduction C vers java


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 13
    Par défaut Traduction C vers java
    Bonjour a tous,

    Je voudrai créer un programme qui lit un log contenant du texte et qui est en écriture constante. Pour ça j'ai fait ceci ( en c++ ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
            FILE * pFile;
            pFile = fopen(log_path.c_str(), "r");
     
            if(pFile == NULL) perror("Error opening file");
     
            setvbuf(pFile, NULL, _IONBF, 0);
            fseek(pFile , 0 , SEEK_END);
     
            while(1) {
     
                if ( (void*) fgets (line , 4192 , pFile) != NULL ) {
     
                    fputs(line, stdout);
     
                }
     
            }
     
            fclose(pFile);
     
        return 0;
    }
    Je voudrai maintenant le faire en java, seulement je n'ai aucune idée de quelle fonction se servir. J'ai essayé le FileInputStream sans succès, quand à BufferedReader c'est impossible car j'ai besoin d'avoir un buffer de taille 0 pour pouvoir lire même quand le EOF est atteint afin de traiter les prochains évenements.

    Auriez-vous une idée ?

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Et si tu nous montrais le code java que tu as essayé ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 13
    Par défaut
    Ah oui pardon, le voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
        public static void main(String[] args) throws FileNotFoundException, IOException {
     
           String log_path = "C:\\Users\\Bapiste\\Desktop\\Coyote\\minigames.log" ;
     
           FileInputStream reader;
     
           try {
     
               reader = new FileInputStream(new File(log_path));
               byte[] buffer = new byte[4196];
               int n ;
     
               while(true) {
     
                while((n = reader.read(buffer)) >= 0){
     
                for(byte bit : buffer)
                    System.out.print( (char)bit );
                    System.out.println("");
                }
     
               }
     
           } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
     
        }

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Ben déjà, ça compile pas. Il faut ajouter une exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
            String log_path = "C:\\Users\\Bapiste\\Desktop\\Coyote\\minigames.log" ;
            
            FileInputStream reader;
            
            try {
                
                reader = new FileInputStream(new File(log_path));
                byte[] buffer = new byte[4196];
                int n ;
                
                while(true) {
                    
                    while((n = reader.read(buffer)) >= 0){
                        
                        for(byte bit : buffer)
                            System.out.print( (char)bit );
                        System.out.println("");
                    }
                    
                }
                
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            
        }
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  5. #5
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Ensuite, petit coquin, tu aurais du lire la FAQ sur la lecture des fichiers lignes à lignes

    ce qui te donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
            String log_path = "C:\\Users\\Bapiste\\Desktop\\Coyote\\minigames.log" ;
            Scanner scanner;
            try {
                scanner = new Scanner(new File(log_path));
                while (scanner.hasNextLine()) {
                    String line = scanner.nextLine();
     
                    System.out.println(line);
                    //faites ici votre traitement
                }
     
                scanner.close();
            } catch (FileNotFoundException ex) {
                ex.printStackTrace();
            }
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 13
    Par défaut
    Certes très cher je ne l'ai point lu, mais cela ne peut marcher. Quand le scanner atteindra le EOF, le buffer ne se "rafraichira" pas et tout ce qui sera écrit plus tard ne sera donc pas lu.

    C'est pour ça que je cherche un moyen de ne pas bufferiser le flux.

    Peut-être me suis-je mal exprimé et je m'en excuse si vous ne m'avez pas compris.

  7. #7
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Je pense que ceci t'aidera, le tutoriel Java de jmdoudou, chapitre flux.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Traduction de code Java vers MATLAB
    Par kallelbalsam dans le forum MATLAB
    Réponses: 1
    Dernier message: 10/04/2014, 07h10
  2. Traduction C++ vers java
    Par ToTo13 dans le forum Général Java
    Réponses: 6
    Dernier message: 27/04/2011, 18h22
  3. Traduction de C++ vers Java
    Par Ocean_blue4 dans le forum Langage
    Réponses: 4
    Dernier message: 19/01/2006, 06h52
  4. Traduction C++ vers Delphi
    Par lil_jam63 dans le forum Langage
    Réponses: 6
    Dernier message: 05/07/2004, 13h10
  5. probleme traduction C vers Delphi
    Par zinaif dans le forum Langage
    Réponses: 3
    Dernier message: 27/06/2003, 08h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo