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

Entrée/Sortie Java Discussion :

lire un fichier cvs à partir d'une url


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Points : 16
    Points
    16
    Par défaut lire un fichier cvs à partir d'une url
    Bonjour,
    Est-il possible de télécharger via une appli java des données accessible via une url de ce type :
    http://ichart.finance.yahoo.com/tabl...=d&ignore=.csv
    puis de lire et traiter les données de ce fichier?
    Une solution serait de faire un script php ou bash qui s'occuperait de télécharger ces données mais je préfèrerai tous faire en java.

  2. #2
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Bien sûr c'est possible !
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    cool
    Il ne me reste plus qu'a trouver comment ;-)

  4. #4
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Citation Envoyé par denis.ws Voir le message
    Il ne me reste plus qu'a trouver comment ;-)
    C'est à peu de choses prêt la même chose que lire un fichier sur le disque. Le flux viendra d'internet, pas du disque dur... pour ce que ça change...
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    j'ai trouvé une classe de HackTrack

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    package cj08;
     
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.ArrayList;
    import java.util.StringTokenizer;
     
     
     
    /**
     * This class is to be used to directly import data from a CSV file available on
     * an URL. Only http:// protocol is supported ! (not file://)
     * 
     * @author Philippe FERY
     * @version 1.0
     * 
     * Created on Jan 24, 2007
     */
     
    public class CSVImporter {
    	private String csvFileURL;
     
    	private ArrayList<ArrayList> dataTable;
     
    	private StringTokenizer splitter;
     
    	/**
             * Create a new CSVImporter.
             * 
             * @param csvFileURL
             *            The file URL
             */
    	public CSVImporter(String csvFileURL) {
    		super();
    		this.csvFileURL = csvFileURL;
    		dataTable = new ArrayList<ArrayList>();
    	}
     
    	/**
             * Import data from the file at specified URL
             * 
             * @param csvFileURL
             *            The file URL
             * @throws IOException
             *             If problem occurs during rad of file
             */
    	public void importCSVFile() throws IOException {
    		URL url = new URL(csvFileURL);
    		HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection();
    		httpConnection.connect();
    		InputStreamReader isr = new InputStreamReader(httpConnection.getInputStream());
    		BufferedReader reader = new BufferedReader(isr);
     
    		String line = "";
    		ArrayList<String> dataLine;
    		while ((line = reader.readLine()) != null) {
    			dataLine = new ArrayList<String>();
    			splitter = new StringTokenizer(line, ",");
    			while (splitter.hasMoreElements()) {
    				String data = (String) splitter.nextElement();
    				dataLine.add(data);
    				dataTable.add(dataLine);
    			}
    		}
    	}
     
    	/**
             * Return a ArrayList of ArrayList with all data in String format
             * 
             * @return The data read from URL
             */
    	public ArrayList<ArrayList> getDataList() {
    		return dataTable;
    	}
     
    	/**
             * Return a String[][] double array of data
             * 
             * @return The data read form URL
             */
    	public String[][] getData() {
    		if (dataTable.size() == 0)
    			return null;
    		int rowCount = dataTable.size();
    		int colCount = ((ArrayList) dataTable.get(0)).size();
    		String[][] dataArray = new String[rowCount][colCount];
    		ArrayList dataLine;
    		String data;
    		for (int r = 0; r < rowCount; r++) {
    			dataLine = (ArrayList) (dataTable.get(r));
    			for (int c = 0; c < dataLine.size(); c++) {
    				data = (String) (dataLine.get(c));
    				dataArray[r][c] = data;
    			}
    		}
    		return dataArray;
    	}
     
    	/**
             * Use the main method below to test CSV import.
             * 
             * @param args
             *            The file URL starting with http://
             */
    	public static void main(String[] args) {
    		if (args == null || args.length == 0) {
    			System.out.println("Syntax: CSVImporter [httpUrlString]");
    			return;
    		} else if (!args[0].startsWith("http://")) {
    			System.out.println("Note: only HTTP protocol is supported. Please specify an URL beginning with http://");
    			return;
    		}
    		try {
    			CSVImporter importer = new CSVImporter(args[0]);
    			importer.importCSVFile();
    			String[][] data = importer.getData();
    			StringBuffer buffer;
    			for (int i = 0; i < data.length; i++) {
    				buffer = new StringBuffer();
    				for (int j = 0; j < data[0].length; j++) {
    					buffer.append(data[i][j]).append("\t");
    				}
    				System.out.println(buffer.toString());
    			}
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    }
    Mais quand je teste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        public void getDataFromCVS() {
    		CSVImporter cvs = new CSVImporter("http://ichart.finance.yahoo.com/table.csv?s=GOLD&a=06&b=31&c=2002&d=04&e=17&f=2008&g=d&ignore=.csv");
    		String[][] valeur = cvs.getData(); 
    		System.out.println("DATA CVS "+valeur) ;
        }
    cela me renvoie "null"
    je ne comprends pas trop comment utiliser cette classe
    en fait j'aimerai récupérer pour chaque colonne un tableau comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private float[] valeur = {219, 222, 172, 174, 159, 28, 37, 71, 156, etc};

  6. #6
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Tu n'as pas appelé la méthode importCSVFile().
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Quel benêt je fais, je n'avais pas compris que la méthode main expliquait le tout.
    Il ne me reste qu'a utiliser les données.

Discussions similaires

  1. Lire un fichier XML à partir d'une URL
    Par spaukensen dans le forum Langage
    Réponses: 3
    Dernier message: 18/03/2008, 12h03
  2. télécharger un fichier a partir d'une URL
    Par cterra dans le forum Entrée/Sortie
    Réponses: 17
    Dernier message: 25/09/2006, 21h17
  3. Lire un fichier .TXT en donnant une URL
    Par Matt2094 dans le forum Langage
    Réponses: 9
    Dernier message: 03/05/2006, 15h35
  4. [ java.net ] récupérer un fichier PDF à partir d'une URL
    Par nico2280 dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 10/11/2005, 12h09
  5. [DOM] [JAVA + XML] Ouvrir un fichier xml à partir d'une url
    Par Hell dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 09/06/2005, 01h06

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