jayzman1
Messages postés4Date d'inscriptionmardi 15 décembre 2015StatutMembreDernière intervention20 janvier 2016
-
16 déc. 2015 à 14:44
jayzman1 -
4 janv. 2016 à 07:50
Bonjour,
voici mon projet
1- télécharger dossier sur un serveur FTP et placer dans un dir local(code java)
2-de-zipper les éléments dans le dossier un par un et placer le nom des éléments dans un fichier.text successivement séparer par un espace (code java)
3-exécuter le fichier dans cygwin automatiquement et envoyer dans un fichier1.txt (code java)
4-lire le fichier1.txt et ajouter dans une base de donnée MySQL (code java)
merci à vous
le 1- j'ai déjà un code mais ça ne marche pas il a retourné les fichiers vide
voici mon code
import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.text.DateFormat;importstatic javaapplication5.MonFTP.receptionner;import org.apache.commons.net.ftp.FTP;import org.apache.commons.net.ftp.FTPClient;import org.apache.commons.net.ftp.FTPFile;import org.apache.commons.net.ftp.FTPReply;publicclassMonFTP{publicstaticFTPClientftp;privatestaticBufferedOutputStreamout;publicstaticvoidmain(String[] args){Stringresult;
result =receptionner("C:\\cygwin\\home\\colombna\\decoder\\traces","");
System.out.println("Result: "+ result);}publicstaticStringreceptionner(Stringchemin,StringnomFichier){try{Stringserver ="xxx";Stringusername ="xxx";Stringpassword ="xxx";// Connect and logon to FTP ServerFTPClientftp =newFTPClient();
ftp.connect(server);
ftp.login(username, password);
System.out.println("Connected to "+ server +".");
System.out.print(ftp.getReplyString());// List the files in the directory
ftp.changeWorkingDirectory("/dir");
FTPFile[] files = ftp.listFiles();
System.out.println("Number of files in dir: "+ files.length);DateFormatdf = DateFormat.getDateInstance(DateFormat.SHORT);for(int i =0; i < files.length; i++){
System.out.print(df.format(files[i].getTimestamp().getTime()));
System.out.println("\t"+ files[i].getName());Stringfilename = files[i].getName();Filef1 =newFile(chemin+"/"+filename+"");
out =newBufferedOutputStream(newFileOutputStream(f1),8);
nomFichier = files[i].getName();}
ftp.retrieveFile(nomFichier+"", out);
ftp.logout();
ftp.disconnect();}catch(Exceptione){
e.printStackTrace();}return"reussi";}}
on peut faire dans un tableau mais ça ne marche pas encore,il ne trouve pas cygwin
le 3- j'ai encore un code mais ça donne des erreurs et le cygwin,il ne trouve pas
voici mon code
try{Processp = Runtime.getRuntime().exec("C:/cygwin/bin/bash -c C:\\cygwin\\home\\colombna\\decoder\\TEST.sh");InputStreamoutStream = p.getInputStream();// normal output of the shellInputStreamerrStream = p.getInputStream();// error output of the shell// TODO: start separate threads to read these streamsPrintStreamps =newPrintStream(p.getOutputStream());
ps.println("cd decoder");
ps.println("bash TEST.sh");
ps.println("exit");
ps.close();
p.waitFor();if(p.exitValue()==0){
JOptionPane.showMessageDialog(this,"execution reussi!");}else{
JOptionPane.showMessageDialog(this,"execution non reussi!");}}catch(Exceptione){
System.out.println("Exception: "+ e.toString());}
on peut faire dans un tableau mais ça ne marche pas encore,il ne trouve pas cygwin
pour le 4 j'ai deja un code mais juste lire le fichier mais je ne sais pas l'enregistrer dans une base
voici mon code
JFileChooserdialogue =newJFileChooser();// affichage
dialogue.showOpenDialog(null);StringfilePath =""+ dialogue.getSelectedFile();try{BufferedReaderbuff =newBufferedReader(newFileReader(filePath));try{Stringline;// Lire le fichier ligne par ligne // La boucle se termine quand la méthode affiche "null" Patternpattern = Pattern.compile("\\[(.*)\\]\\s+\\/(\\d+)\\s+\\((.*)\\)\\s+([^\\s]+)\\s+\\((.*)\\)\\s+\\((.*)\\)\\s+\\((.*)\\)\\s+\\((.*)\\)\\s+\\((.*)\\)\\s+\\((.*)\\)\\s+\\((.*)\\)\\s+\\((.*)\\)\\s+\\((.*)\\)");while((line = buff.readLine())!=null){Matchermatcher = pattern.matcher(line);if(matcher.find()){for(int i =1; i <= matcher.groupCount(); i++){this.textArea1.setText(matcher.group(i));
System.out.println(matcher.group(i));}}}
buff.close();//Lecture fini donc on ferme le flux }catch(IOExceptione){
System.out.println(e.getMessage());
System.exit(1);}}catch(IOExceptione){
System.out.println(e.getMessage());
System.exit(1);}
le fichier il y a des exceptions c'est pourquoi j'ai utilisé le regex ,
P.S: si possible,je veut que tout ça se lie et marche automatique!
merci a vous,
jayzman
bonjour et bonne année 2016
Pour le 1 il n'y a pas d'erreur juste qu'il return le fichier vide,
Pour le 2 il marche bien
Pour le 3 il a déjà trouvé le cygwin mais il ne compile pas cmd[1] et cmd[2]
pour le 4 le plus important maintenant,je ne sais pas l'enregistrer dans la base de données
je un fichier text qui ressemble a ceci
table num : 001 nom : JAYZ prenom : Man
table1 num : 002 nom : JAYZ1 prenom : Man1
comment je dois faire pour l'enregistrer dans la base de données
4 janv. 2016 à 07:50
Pour le 1 il n'y a pas d'erreur juste qu'il return le fichier vide,
Pour le 2 il marche bien
Pour le 3 il a déjà trouvé le cygwin mais il ne compile pas cmd[1] et cmd[2]
pour le 4 le plus important maintenant,je ne sais pas l'enregistrer dans la base de données
je un fichier text qui ressemble a ceci
comment je dois faire pour l'enregistrer dans la base de données
merci
jayzman1