A voir également:
- Copier la premiere ligne de mon fichier texte en java
- Fichier rar - Guide
- Fichier host - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier iso - Guide
- Site de vente en ligne particulier - Guide
5 réponses
Tiens :
Si tu veux apprendre le plus simple reste de réfléchir un minimum au sujet avant de poser une question.
On n'est pas la pour faire tes devoirs à ta place.
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; public class Lecture_Fichier { public static void main(String[] args) { BufferedReader LecteurBufferise = null; String Chemin = "C:/Users/sbellec.IFR/Desktop/ProduitMondial_test/En_tete.txt"; String ligneDonnee; boolean eof = false; try { //Ouverture du Fichier LecteurBufferise = new BufferedReader(new FileReader(Chemin)); while (eof != true) { //Lecture de la ligne ligneDonnee = LecteurBufferise.readLine(); if (ligneDonnee != null) { String[] mesMots = ligneDonnee.split(";"); File file = new File("C:/Users/sbellec.IFR/Desktop/ProduitMondial_test/" + mesMots[0] + ".txt"); if(!file.exists()){ // si le fichier n'existe pas, on le crée file.createNewFile(); } BufferedWriter EcrireBufferise = new BufferedWriter(new FileWriter(file)); //utilisation du fichier EcrireBufferise.write(ligneDonnee); // on écrit toute la ligne EcrireBufferise.flush(); EcrireBufferise.close(); } else { eof = true; } } } catch (FileNotFoundException ex) { System.out.println("Fichier Non Trouvé !!"); } catch (IOException ex) { System.out.println("Erreur lecture ligne fichier !!"); } finally { try { LecteurBufferise.close(); } catch (IOException ex1) { System.out.println("Erreur fermeture fichier !!"); } } } }
Si tu veux apprendre le plus simple reste de réfléchir un minimum au sujet avant de poser une question.
On n'est pas la pour faire tes devoirs à ta place.
Bonjour,
J'ai du mal à comprendre. Si vous pouvez lire le fichier depuis le code, il suffit de récupérer ce que vous lisez dans une variable, puis de l'injecter dans le fichier.
J'ai du mal à comprendre. Si vous pouvez lire le fichier depuis le code, il suffit de récupérer ce que vous lisez dans une variable, puis de l'injecter dans le fichier.
InputStream ips=new FileInputStream(fichier1); InputStreamReader ipsr=new InputStreamReader(ips); BufferedReader br=new BufferedReader(ipsr); FileWriter fw = new FileWriter (fichier2); BufferedWriter bw = new BufferedWriter (fw); PrintWriter fichierSortie = new PrintWriter (bw); String ligne; while ((ligne=br.readLine())!=null){ fichierSortie.println(ligne.split(';')[0]); //la fonction split permet de découper un fichier par rapport à un délimiteur de texte, ici le ";", puis retourne le résultat sous forme de tableau fichierSortie.close(); } br.close(); bw.close();
Merci beaucoup bigbybob de me répondre!
Mais c'est mon premier programme en java et je galère beaucoup.
J'ai un code de lecture de mon premier fichier qui marche niquel. Le voici :
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;
public class Lecture_Fichier {
public static void main(String[] args) {
BufferedReader LecteurBufferise = null;
String Chemin = "C:/***/****/****/******/En_tete.txt";
String ligneDonnee;
boolean eof = false;
try {
//Ouverture du Fichier
LecteurBufferise = new BufferedReader(new FileReader(Chemin));
while (eof != true) {
//Lecture de la ligne
ligneDonnee = LecteurBufferise.readLine();
if (ligneDonnee != null) {
System.out.println(ligneDonnee);
}
else {
eof = true;
}
}
}
catch (FileNotFoundException ex) {
System.out.println("Fichier Non Trouvé !!");
}
catch (IOException ex) {
System.out.println("Erreur lecture ligne fichier !!");
}
finally {
try {
LecteurBufferise.close();
}
catch (IOException ex1) {
System.out.println("Erreur fermeture fichier !!");
}
}
}
}
Maintenant est ce que tu peux m'aider à insérer ton code dans le mien ! Tu as très bien compris ma demande !
D'avance merci
Mais c'est mon premier programme en java et je galère beaucoup.
J'ai un code de lecture de mon premier fichier qui marche niquel. Le voici :
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;
public class Lecture_Fichier {
public static void main(String[] args) {
BufferedReader LecteurBufferise = null;
String Chemin = "C:/***/****/****/******/En_tete.txt";
String ligneDonnee;
boolean eof = false;
try {
//Ouverture du Fichier
LecteurBufferise = new BufferedReader(new FileReader(Chemin));
while (eof != true) {
//Lecture de la ligne
ligneDonnee = LecteurBufferise.readLine();
if (ligneDonnee != null) {
System.out.println(ligneDonnee);
}
else {
eof = true;
}
}
}
catch (FileNotFoundException ex) {
System.out.println("Fichier Non Trouvé !!");
}
catch (IOException ex) {
System.out.println("Erreur lecture ligne fichier !!");
}
finally {
try {
LecteurBufferise.close();
}
catch (IOException ex1) {
System.out.println("Erreur fermeture fichier !!");
}
}
}
}
Maintenant est ce que tu peux m'aider à insérer ton code dans le mien ! Tu as très bien compris ma demande !
D'avance merci
Avec les ajouts
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; public class Lecture_Fichier { public static void main(String[] args) { BufferedReader LecteurBufferise = null; BufferedWriter EcrireBufferise = null; //AJOUT String Chemin = "C:/Users/sbellec.IFR/Desktop/ProduitMondial_test/En_tete.txt"; String CheminEcriture = "C:/Users/sbellec.IFR/Desktop/ProduitMondial_test/MON_FICHIER_POUR_ECRIRE.txt"; //AJOUT String ligneDonnee; boolean eof = false; try { //Ouverture du Fichier LecteurBufferise = new BufferedReader(new FileReader(Chemin)); EcrireBufferise = new BufferedWriter(new FileWriter(CheminEcriture)); //AJOUT while (eof != true) { //Lecture de la ligne ligneDonnee = LecteurBufferise.readLine(); if (ligneDonnee != null) { System.out.println(ligneDonnee); String[] mesMots = ligneDonnee.split(";"); //AJOUT D'UN TABLEAU DE MOTS EcrireBufferise.write(mesMots[0]); //ON ECRIT LE PREMIER MOT EcrireBufferise.flush(); //ON DIT AU FICHIER DE SE METTRE A JOUR } else { eof = true; } } } catch (FileNotFoundException ex) { System.out.println("Fichier Non Trouvé !!"); } catch (IOException ex) { System.out.println("Erreur lecture ligne fichier !!"); } finally { try { LecteurBufferise.close(); EcrireBufferise.close(); // ON FERME LE BUFFER } catch (IOException ex1) { System.out.println("Erreur fermeture fichier !!"); } } } }
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
30 oct. 2012 à 12:39
30 oct. 2012 à 12:39
Bonjour Luc,
Quand tu dit que tu arrive à lire ton fichier, peux-tu récupérer le premier mot de chaque ligne ?
Mets-tu ces mots dans un tableau ou faut-il écrire les mots l'un en dessous de l'autre dans le fichier dès que tu l'a trouvé ?
Quand tu dit que tu arrive à lire ton fichier, peux-tu récupérer le premier mot de chaque ligne ?
Mets-tu ces mots dans un tableau ou faut-il écrire les mots l'un en dessous de l'autre dans le fichier dès que tu l'a trouvé ?
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
30 oct. 2012 à 12:52
30 oct. 2012 à 12:52
Pour écrire dans un fichier en mode ajout::
// Ouvrir le fichier (en append pour écrire à la fin du fichier, donc ne pas écraser les données déjà écrites
// Pour chaque mot (donc appelé autant de fois que tu as un mot à écrire)
// Fermer le fichier
try{// Ouvrir le fichier (création du fichier)
FileWriter fw = new FileWriter("NomFichierTexte.txt", false);
// Ouvrir le fichier (en append pour écrire à la fin du fichier, donc ne pas écraser les données déjà écrites
FileWriter fw = new FileWriter("NomFichierTexte.txt", true);
// Pour chaque mot (donc appelé autant de fois que tu as un mot à écrire)
writer.write(texte,0,texte.length()); }catch(IOException ex){ ex.printStackTrace(); exit(1); } finally{
// Fermer le fichier
if(writer != null){ writer.close(); }
Mon problème n'est pas totalement résolu en fait puisque j'ai oublié une étape.
Mon premier problème est clos cependant, dans un second temps il faut que dans mes fichiers créés je récupère chacune des lignes qui correspondent à cette variable.
je m'explique, dans mon 1er fichier j'ai ces lignes :
Navire1;2012;5;12;toto
Navire1;2012;6;19;fanfan
Navire1;2012;8;4;titi
Navire1;2012;1;7;tutu
Navire2;2012;11;19;francj
Navire2;2012;10;20;yo
Navire2;2012;6;6;jeje
Il faut donc que les fichiers 'Navire1' et 'Navire2' soient créés --> RESOLU
Maintenant par contre, dans mon fichier 'Navire1', je dois retrouver les lignes :
Navire1;2012;5;12;toto
Navire1;2012;6;19;fanfan
Navire1;2012;8;4;titi
Navire1;2012;1;7;tutu
Et ce n'est pas le cas puisque je récupère le nom du fichier.
Mon premier problème est clos cependant, dans un second temps il faut que dans mes fichiers créés je récupère chacune des lignes qui correspondent à cette variable.
je m'explique, dans mon 1er fichier j'ai ces lignes :
Navire1;2012;5;12;toto
Navire1;2012;6;19;fanfan
Navire1;2012;8;4;titi
Navire1;2012;1;7;tutu
Navire2;2012;11;19;francj
Navire2;2012;10;20;yo
Navire2;2012;6;6;jeje
Il faut donc que les fichiers 'Navire1' et 'Navire2' soient créés --> RESOLU
Maintenant par contre, dans mon fichier 'Navire1', je dois retrouver les lignes :
Navire1;2012;5;12;toto
Navire1;2012;6;19;fanfan
Navire1;2012;8;4;titi
Navire1;2012;1;7;tutu
Et ce n'est pas le cas puisque je récupère le nom du fichier.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
C'est bon je débute ! Un peu d'aide ne fait pas de mal ! Surtout que ca récupère que la première ligne mais pas les suivantes !
Donc la ligne :
Navire1;2012;5;12;toto est bien dedans par contre les 3 suivantes non
Navire1;2012;6;19;fanfan
Navire1;2012;8;4;titi
Navire1;2012;1;7;tutu
Donc la ligne :
Navire1;2012;5;12;toto est bien dedans par contre les 3 suivantes non
Navire1;2012;6;19;fanfan
Navire1;2012;8;4;titi
Navire1;2012;1;7;tutu
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.TooManyListenersException;
import javax.comm.CommPortIdentifier;
import javax.comm.NoSuchPortException;
import javax.comm.PortInUseException;
import javax.comm.SerialPort;
import javax.comm.SerialPortEvent;
import javax.comm.SerialPortEventListener;
import javax.comm.UnsupportedCommOperationException;
public class commSerie implements Runnable, SerialPortEventListener {
static CommPortIdentifier portId;
static BufferedReader inputStream;
static OutputStream outputStream;
static SerialPort serialPort;
static Thread readThread;
public commSerie(String portname) throws NoSuchPortException {
CommPortIdentifier portId;
portId = CommPortIdentifier.getPortIdentifier(portname);
try {
serialPort = (SerialPort) portId.open("PortSerie", 2000);
} catch (PortInUseException e) {
}
try {
inputStream = new BufferedReader(
new InputStreamReader(serialPort.getInputStream()));
outputStream = serialPort.getOutputStream();
} catch (IOException e) {
}
try {
serialPort.addEventListener(this);
} catch (TooManyListenersException e) {
}
serialPort.notifyOnDataAvailable(true);
try {
serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
} catch (UnsupportedCommOperationException e) {
}
readThread = new Thread(this);
readThread.start();
}
public void run() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
}
}
public void serialEvent(SerialPortEvent event) {
switch (event.getEventType()) {
case SerialPortEvent.BI:
case SerialPortEvent.OE:
case SerialPortEvent.FE:
case SerialPortEvent.PE:
case SerialPortEvent.CD:
case SerialPortEvent.CTS:
case SerialPortEvent.DSR:
case SerialPortEvent.RI:
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
break;
case SerialPortEvent.DATA_AVAILABLE:
String chaineLue = new String();
try {
chaineLue = (String) inputStream.readLine();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(chaineLue);
if (chaineLue=="ACK"){
try {
ecritPort("sio 1:1 2:1 3:0 4:0");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
ecritPort("sio 1:0 2:0 3:0 4:0");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
break;
}
}
public static void ecritPort (String chaine) throws IOException {
int c;
for (int i=0; i < chaine.length(); i++) {
c = chaine.charAt(i);
outputStream.write(c);
}
outputStream.write(0x0d); // retour chariot
}
public static void close() throws IOException {
inputStream.close();
outputStream.close();
serialPort.close();
}
/*public static void version(){
System.out.println("Version ");
inputStream.ecritPort("fw");
}
public static void tague(){
System.out.println("Passez votre carte sur le RFID ");
Thread.sleep(2000);
inputStream.ecritPort("sv");
}
public static void liste(){
System.out.println("Liste des cartes ");
inputStream.ecritPort("ls");
}
public static void LED(){
int l=0;
if(l==0){
inputStream.ecritPort("sio 1:1 2:1 3:0 4:0");
l=1;
System.out.println("Led allumé");
}
else {
inputStream.ecritPort("sio 1:0 2:0 3:0 4:0");
l=0;
System.out.println("Led éteinte");
}
}*/
}
Ensuite on a
import javax.comm.*;
import com.sun.comm.Win32Driver;
import java.io.*;
public class RFID_01 {
public static void main(String[] args) throws NoSuchPortException, PortInUseException, IOException, InterruptedException {
int l=0;
//Récuperation du port en argument
String port = args[0];
//initialisation du driver
Win32Driver w32Driver = new Win32Driver();
w32Driver.initialize();
//lancement de l'appli
@SuppressWarnings("unused")
commSerie comSerie = new commSerie(port);
//"interface utilisateur"
System.out.println("__________________Menu___________________");
System.out.println("|Taper v pour connaitre la version |");
System.out.println("|Taper t pour taguer une carte |");
System.out.println("|Taper s pour supprimer une carte |");
System.out.println("|Taper l pour lister les cartes |");
System.out.println("|Taper o pour allumer ou éteindre LED |");
System.out.println("|Taper q pour quitter |");
System.out.println("|________________________________________|");
//construction flux lecture
BufferedReader clavier =
new BufferedReader(new InputStreamReader(System.in));
//lecture sur le flux entrée.
String lu = null;
do
{
lu = clavier.readLine();
if (lu.equals("v")){ //commSerie.version();
System.out.println("Version ");
commSerie.ecritPort("fw");
}
if (lu.equals("t")){
//commSerie.tague() ;
System.out.println("Passez votre carte sur le RFID ");
Thread.sleep(2000);
commSerie.ecritPort("sv");
}
if (lu.equals("s")){
//commSerie.tague() ;
System.out.println("Passez votre carte sur le RFID ");
Thread.sleep(2000);
commSerie.ecritPort("del");
}
if (lu.equals("l")){ //commSerie.liste();
System.out.println("Liste des cartes ");
commSerie.ecritPort("ls");
}
if (lu.equals("o")) {
//commSerie.LED();
if(l==0){
commSerie.ecritPort("sio 1:1 2:1 3:0 4:0");
l=1;
System.out.println("Led allumé");
}
else {
commSerie.ecritPort("sio 1:0 2:0 3:1 4:1");
l=0;
System.out.println("Led éteinte");
}
}
}
while (!lu.equals("q"));
commSerie.close();
}
}
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.TooManyListenersException;
import javax.comm.CommPortIdentifier;
import javax.comm.NoSuchPortException;
import javax.comm.PortInUseException;
import javax.comm.SerialPort;
import javax.comm.SerialPortEvent;
import javax.comm.SerialPortEventListener;
import javax.comm.UnsupportedCommOperationException;
public class commSerie implements Runnable, SerialPortEventListener {
static CommPortIdentifier portId;
static BufferedReader inputStream;
static OutputStream outputStream;
static SerialPort serialPort;
static Thread readThread;
public commSerie(String portname) throws NoSuchPortException {
CommPortIdentifier portId;
portId = CommPortIdentifier.getPortIdentifier(portname);
try {
serialPort = (SerialPort) portId.open("PortSerie", 2000);
} catch (PortInUseException e) {
}
try {
inputStream = new BufferedReader(
new InputStreamReader(serialPort.getInputStream()));
outputStream = serialPort.getOutputStream();
} catch (IOException e) {
}
try {
serialPort.addEventListener(this);
} catch (TooManyListenersException e) {
}
serialPort.notifyOnDataAvailable(true);
try {
serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
} catch (UnsupportedCommOperationException e) {
}
readThread = new Thread(this);
readThread.start();
}
public void run() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
}
}
public void serialEvent(SerialPortEvent event) {
switch (event.getEventType()) {
case SerialPortEvent.BI:
case SerialPortEvent.OE:
case SerialPortEvent.FE:
case SerialPortEvent.PE:
case SerialPortEvent.CD:
case SerialPortEvent.CTS:
case SerialPortEvent.DSR:
case SerialPortEvent.RI:
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
break;
case SerialPortEvent.DATA_AVAILABLE:
String chaineLue = new String();
try {
chaineLue = (String) inputStream.readLine();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(chaineLue);
if (chaineLue=="ACK"){
try {
ecritPort("sio 1:1 2:1 3:0 4:0");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
ecritPort("sio 1:0 2:0 3:0 4:0");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
break;
}
}
public static void ecritPort (String chaine) throws IOException {
int c;
for (int i=0; i < chaine.length(); i++) {
c = chaine.charAt(i);
outputStream.write(c);
}
outputStream.write(0x0d); // retour chariot
}
public static void close() throws IOException {
inputStream.close();
outputStream.close();
serialPort.close();
}
/*public static void version(){
System.out.println("Version ");
inputStream.ecritPort("fw");
}
public static void tague(){
System.out.println("Passez votre carte sur le RFID ");
Thread.sleep(2000);
inputStream.ecritPort("sv");
}
public static void liste(){
System.out.println("Liste des cartes ");
inputStream.ecritPort("ls");
}
public static void LED(){
int l=0;
if(l==0){
inputStream.ecritPort("sio 1:1 2:1 3:0 4:0");
l=1;
System.out.println("Led allumé");
}
else {
inputStream.ecritPort("sio 1:0 2:0 3:0 4:0");
l=0;
System.out.println("Led éteinte");
}
}*/
}
Ensuite on a
import javax.comm.*;
import com.sun.comm.Win32Driver;
import java.io.*;
public class RFID_01 {
public static void main(String[] args) throws NoSuchPortException, PortInUseException, IOException, InterruptedException {
int l=0;
//Récuperation du port en argument
String port = args[0];
//initialisation du driver
Win32Driver w32Driver = new Win32Driver();
w32Driver.initialize();
//lancement de l'appli
@SuppressWarnings("unused")
commSerie comSerie = new commSerie(port);
//"interface utilisateur"
System.out.println("__________________Menu___________________");
System.out.println("|Taper v pour connaitre la version |");
System.out.println("|Taper t pour taguer une carte |");
System.out.println("|Taper s pour supprimer une carte |");
System.out.println("|Taper l pour lister les cartes |");
System.out.println("|Taper o pour allumer ou éteindre LED |");
System.out.println("|Taper q pour quitter |");
System.out.println("|________________________________________|");
//construction flux lecture
BufferedReader clavier =
new BufferedReader(new InputStreamReader(System.in));
//lecture sur le flux entrée.
String lu = null;
do
{
lu = clavier.readLine();
if (lu.equals("v")){ //commSerie.version();
System.out.println("Version ");
commSerie.ecritPort("fw");
}
if (lu.equals("t")){
//commSerie.tague() ;
System.out.println("Passez votre carte sur le RFID ");
Thread.sleep(2000);
commSerie.ecritPort("sv");
}
if (lu.equals("s")){
//commSerie.tague() ;
System.out.println("Passez votre carte sur le RFID ");
Thread.sleep(2000);
commSerie.ecritPort("del");
}
if (lu.equals("l")){ //commSerie.liste();
System.out.println("Liste des cartes ");
commSerie.ecritPort("ls");
}
if (lu.equals("o")) {
//commSerie.LED();
if(l==0){
commSerie.ecritPort("sio 1:1 2:1 3:0 4:0");
l=1;
System.out.println("Led allumé");
}
else {
commSerie.ecritPort("sio 1:0 2:0 3:1 4:1");
l=0;
System.out.println("Led éteinte");
}
}
}
while (!lu.equals("q"));
commSerie.close();
}
}
public class GPRMC {
public static String UTC_TIME;
public static String Status;
public static String Latitude;
public static String N_S_Ind;
public static String Longitude;
public static String E_W_Ind;
public static String Speed_Over_Groung;
public static String Course_Over_Groung;
public static String Date;
public static String Magnetic_Variation;
public static String Checksum;
public static String Diff;
public static boolean Valid;
public GPRMC()
{Valid=false;}
public static void update(String chaine)
{
int deb_index = 7; int fin_index;
fin_index = chaine.indexOf(",", deb_index);
UTC_TIME = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
fin_index = chaine.indexOf(",", deb_index);
if (fin_index != deb_index)
{
Status = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
fin_index = chaine.indexOf(",", deb_index);
Latitude = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
fin_index = chaine.indexOf(",", deb_index);
N_S_Ind = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
fin_index = chaine.indexOf(",", deb_index);
Longitude = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
fin_index = chaine.indexOf(",", deb_index);
E_W_Ind = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
fin_index = chaine.indexOf(",", deb_index);
Speed_Over_Groung = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
fin_index = chaine.indexOf(",", deb_index);
Course_Over_Groung = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
fin_index = chaine.indexOf(",", deb_index);
Date = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
fin_index = chaine.indexOf(",", deb_index);
Magnetic_Variation = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
fin_index = chaine.indexOf("*", deb_index);
if (fin_index == -1)
fin_index = deb_index;
Diff = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
Checksum = chaine.substring(deb_index, chaine.length());
// calcul du checksum XOR
int calc_check = 0;
for (int idx = 1; idx != chaine.length() - 3; idx++)
{ calc_check = calc_check ^ chaine.charAt(idx);}
if (calc_check != Integer.parseInt(Checksum,16))
System.out.println("Erreur de checksum");
else Valid = true;
}
else
{
System.out.println("Coordonnées non valides");
}
}
public static void main(String[] args) {
update("$GPRMC,150949.000,A,4917.1034,N,00100.2702,E,0.29,211.19,231012,,,A*67");
}
}
Ensuite
import javax.comm.*;
import com.sun.comm.Win32Driver;
import java.io.*;
import java.util.*;
public class GPSPos extends Thread implements SerialPortEventListener {
private CommPortIdentifier portId;
private SerialPort serialPort;
private BufferedReader fluxLecture;
private static boolean running;
private GPGGA gpgga = new GPGGA();
private ouvre_navigateur navigateur = new ouvre_navigateur();
/**
* Constructeur qui r�cup�re l'identifiant du port et lance l'ouverture.
*/
public GPSPos(String port) {
//initialisation du driver
Win32Driver w32Driver = new Win32Driver();
w32Driver.initialize();
//r�cup�ration de l'identifiant du port
try {
portId = CommPortIdentifier.getPortIdentifier(port);
} catch (NoSuchPortException e) {
}
//ouverture du port
try {
serialPort = (SerialPort) portId.open("ModeEvenement", 2000);
} catch (PortInUseException e) {
}
//r�cup�ration du flux
try {
fluxLecture =
new BufferedReader(
new InputStreamReader(serialPort.getInputStream()));
} catch (IOException e) {
}
//ajout du listener
try {
serialPort.addEventListener(this);
} catch (TooManyListenersException e) {
}
//param�trage du port
serialPort.notifyOnDataAvailable(true);
try {
serialPort.setSerialPortParams(
4800,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
} catch (UnsupportedCommOperationException e) {
}
System.out.println("port ouvert, attente de lecture");
}
public void run() {
running = true;
while (running) {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
}
}
//fermeture du flux et port
try {
fluxLecture.close();
} catch (IOException e) {
}
serialPort.close();
}
public void selChaine(String chaine) {
if (chaine.contains("$GPGGA"))
{
gpgga.update(chaine);
if (gpgga.Valid) {stopThread();
System.out.println("Coordonnées mise à jours");
String url = "http://maps.google.com/maps?q=49.2861N,1.0077E";
navigateur.displayURL(url);}
}
}
/**
* M�thode de gestion des �v�nements.
*/
public void serialEvent(SerialPortEvent event) {
//gestion des �v�nements sur le port :
//on ne fait rien sauf quand les donn�es sont disponibles
switch (event.getEventType()) {
case SerialPortEvent.BI :
case SerialPortEvent.OE :
case SerialPortEvent.FE :
case SerialPortEvent.PE :
case SerialPortEvent.CD :
case SerialPortEvent.CTS :
case SerialPortEvent.DSR :
case SerialPortEvent.RI :
case SerialPortEvent.OUTPUT_BUFFER_EMPTY :
break;
case SerialPortEvent.DATA_AVAILABLE :
String chaineTxt = new String();
try {
//lecture du buffer et affichage
chaineTxt = (String) fluxLecture.readLine();
System.out.println(chaineTxt);
selChaine(chaineTxt);
} catch (IOException e) {
}
break;
}
}
/**
* Permet l'arr�t du thread
*/
public void stopThread() {
running = false;
}
/**
* M�thode principale
*/
public static void main(String[] args) {
//R�cuperation du port en argument
String port = args[0];
//lancement de l'appli
GPSPos gpspos=new GPSPos(port);
gpspos.start();
//"interface utilisateur"
System.out.println("taper q pour quitter");
//construction flux lecture
BufferedReader clavier =
new BufferedReader(new InputStreamReader(System.in));
//lecture sur le flux entr�e.
try {
String lu = clavier.readLine();
while (!lu.equals("q")) {
}
} catch (IOException e) {
}
gpspos.stopThread();
}
}
public static String UTC_TIME;
public static String Status;
public static String Latitude;
public static String N_S_Ind;
public static String Longitude;
public static String E_W_Ind;
public static String Speed_Over_Groung;
public static String Course_Over_Groung;
public static String Date;
public static String Magnetic_Variation;
public static String Checksum;
public static String Diff;
public static boolean Valid;
public GPRMC()
{Valid=false;}
public static void update(String chaine)
{
int deb_index = 7; int fin_index;
fin_index = chaine.indexOf(",", deb_index);
UTC_TIME = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
fin_index = chaine.indexOf(",", deb_index);
if (fin_index != deb_index)
{
Status = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
fin_index = chaine.indexOf(",", deb_index);
Latitude = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
fin_index = chaine.indexOf(",", deb_index);
N_S_Ind = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
fin_index = chaine.indexOf(",", deb_index);
Longitude = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
fin_index = chaine.indexOf(",", deb_index);
E_W_Ind = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
fin_index = chaine.indexOf(",", deb_index);
Speed_Over_Groung = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
fin_index = chaine.indexOf(",", deb_index);
Course_Over_Groung = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
fin_index = chaine.indexOf(",", deb_index);
Date = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
fin_index = chaine.indexOf(",", deb_index);
Magnetic_Variation = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
fin_index = chaine.indexOf("*", deb_index);
if (fin_index == -1)
fin_index = deb_index;
Diff = chaine.substring(deb_index, fin_index);
deb_index = fin_index + 1;
Checksum = chaine.substring(deb_index, chaine.length());
// calcul du checksum XOR
int calc_check = 0;
for (int idx = 1; idx != chaine.length() - 3; idx++)
{ calc_check = calc_check ^ chaine.charAt(idx);}
if (calc_check != Integer.parseInt(Checksum,16))
System.out.println("Erreur de checksum");
else Valid = true;
}
else
{
System.out.println("Coordonnées non valides");
}
}
public static void main(String[] args) {
update("$GPRMC,150949.000,A,4917.1034,N,00100.2702,E,0.29,211.19,231012,,,A*67");
}
}
Ensuite
import javax.comm.*;
import com.sun.comm.Win32Driver;
import java.io.*;
import java.util.*;
public class GPSPos extends Thread implements SerialPortEventListener {
private CommPortIdentifier portId;
private SerialPort serialPort;
private BufferedReader fluxLecture;
private static boolean running;
private GPGGA gpgga = new GPGGA();
private ouvre_navigateur navigateur = new ouvre_navigateur();
/**
* Constructeur qui r�cup�re l'identifiant du port et lance l'ouverture.
*/
public GPSPos(String port) {
//initialisation du driver
Win32Driver w32Driver = new Win32Driver();
w32Driver.initialize();
//r�cup�ration de l'identifiant du port
try {
portId = CommPortIdentifier.getPortIdentifier(port);
} catch (NoSuchPortException e) {
}
//ouverture du port
try {
serialPort = (SerialPort) portId.open("ModeEvenement", 2000);
} catch (PortInUseException e) {
}
//r�cup�ration du flux
try {
fluxLecture =
new BufferedReader(
new InputStreamReader(serialPort.getInputStream()));
} catch (IOException e) {
}
//ajout du listener
try {
serialPort.addEventListener(this);
} catch (TooManyListenersException e) {
}
//param�trage du port
serialPort.notifyOnDataAvailable(true);
try {
serialPort.setSerialPortParams(
4800,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
} catch (UnsupportedCommOperationException e) {
}
System.out.println("port ouvert, attente de lecture");
}
public void run() {
running = true;
while (running) {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
}
}
//fermeture du flux et port
try {
fluxLecture.close();
} catch (IOException e) {
}
serialPort.close();
}
public void selChaine(String chaine) {
if (chaine.contains("$GPGGA"))
{
gpgga.update(chaine);
if (gpgga.Valid) {stopThread();
System.out.println("Coordonnées mise à jours");
String url = "http://maps.google.com/maps?q=49.2861N,1.0077E";
navigateur.displayURL(url);}
}
}
/**
* M�thode de gestion des �v�nements.
*/
public void serialEvent(SerialPortEvent event) {
//gestion des �v�nements sur le port :
//on ne fait rien sauf quand les donn�es sont disponibles
switch (event.getEventType()) {
case SerialPortEvent.BI :
case SerialPortEvent.OE :
case SerialPortEvent.FE :
case SerialPortEvent.PE :
case SerialPortEvent.CD :
case SerialPortEvent.CTS :
case SerialPortEvent.DSR :
case SerialPortEvent.RI :
case SerialPortEvent.OUTPUT_BUFFER_EMPTY :
break;
case SerialPortEvent.DATA_AVAILABLE :
String chaineTxt = new String();
try {
//lecture du buffer et affichage
chaineTxt = (String) fluxLecture.readLine();
System.out.println(chaineTxt);
selChaine(chaineTxt);
} catch (IOException e) {
}
break;
}
}
/**
* Permet l'arr�t du thread
*/
public void stopThread() {
running = false;
}
/**
* M�thode principale
*/
public static void main(String[] args) {
//R�cuperation du port en argument
String port = args[0];
//lancement de l'appli
GPSPos gpspos=new GPSPos(port);
gpspos.start();
//"interface utilisateur"
System.out.println("taper q pour quitter");
//construction flux lecture
BufferedReader clavier =
new BufferedReader(new InputStreamReader(System.in));
//lecture sur le flux entr�e.
try {
String lu = clavier.readLine();
while (!lu.equals("q")) {
}
} catch (IOException e) {
}
gpspos.stopThread();
}
}