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

Java Discussion :

Téléchargement fichier texte


Sujet :

Java

  1. #1
    Membre habitué Avatar de vedder
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2003
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 166
    Points : 128
    Points
    128
    Par défaut Téléchargement fichier texte
    Bonjour ,
    je souhaite télécharger un fichier texte depuis un server mais je me retrouve face à des exceptions. voici mon code :

    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
    public void getFile(URL url) throws IOException 
    	{
    		try {
     
    			URLConnection connection = url.openConnection();
    			connection.connect();
     
    			int fileLength = connection.getContentLength();
     
    			// download the file
    			InputStream input = new BufferedInputStream(url.openStream());
    			OutputStream output = new FileOutputStream("/sdcard/file_name.extension");
     
    			byte data[] = new byte[1024];
    			long total = 0;
    			int count;
    			while ((count = input.read(data)) != -1) {
    				total += count;
     
    				output.write(data, 0, count);
    			}
     
    			output.flush();
    			output.close();
    			input.close();
    		} 
    		catch (Exception e) 
    		{
    			System.out.println(e);
    		}
     
     
    	}
    a caque fois je passe dans cette exception :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    catch (Exception e) 
    		{
    			System.out.println(e);
    		}
    Je suis sur un projet Android et j'ai specifife les bonnes autorisations dans mon fichier manifest :
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INSTALL_PACKAGES" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
    quelqu'un pourrait t'il m'aider ?
    Merci d'avance

  2. #2
    Membre actif Avatar de hbennou
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 162
    Points : 205
    Points
    205
    Par défaut
    Est ce que tu peux nous préciser à quel moment il passe par le catch?

  3. #3
    Membre habitué Avatar de vedder
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2003
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 166
    Points : 128
    Points
    128
    Par défaut
    oui sur celle ci exactement :

  4. #4
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Bonjour,

    c'est pas plus simple si tu mets directement la trace complète de l'exception ?

    Cordialement,
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  5. #5
    Membre habitué Avatar de vedder
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2003
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 166
    Points : 128
    Points
    128
    Par défaut
    l'exception me donne ca :
    05-20 14:11:23.239: I/System.out(23552): android.os.NetworkOnMainThreadException

    (desole je suis debutant en java)

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 608
    Points
    21 608
    Par défaut
    Je ne m'y connais pas beaucoup en Android, mais il est clairement en train de se plaindre que tu essaies de faire des IO réseau sur le thread principal, probablement dédié à la réactivité de l'interface.
    S'il te laissait faire, l'interface resterait gelée pendant le téléchargement. Du coup, il te l'interdit.
    Il doit falloir faire ça dans un thread en arrière-plan. C'est une question Android, pas Java général.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre habitué Avatar de vedder
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2003
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 166
    Points : 128
    Points
    128
    Par défaut
    tu as raison cela vient de la , ce que j'ai fais c'est une classe lancé en asynchrone qui gere le telechargement :

    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
    class DownloadFileAsync extends AsyncTask<String, String, String> {
    	private ProgressDialog mProgressDialog;
    	 public static final int DIALOG_DOWNLOAD_PROGRESS = 0;
     
    	@Override
    	protected void onPreExecute() {
    		super.onPreExecute();
     
    	}
     
     
     
    	@Override
    	protected String doInBackground(String... aurl) {
    		int count;
     
    	try {
     
    	URL url = new URL(aurl[0]);
    	URLConnection conexion = url.openConnection();
    	conexion.connect();
     
    	int lenghtOfFile = conexion.getContentLength();
    	//Log.d("ANDRO_ASYNC", "Lenght of file: " + lenghtOfFile);
    	InputStream input = new BufferedInputStream(url.openStream());
    	OutputStream output = new FileOutputStream(Environment.getExternalStorageDirectory()+"/fichier.txt");
     
    	byte data[] = new byte[1024];
     
    	long total = 0;
     
    		while ((count = input.read(data)) != -1) {
    			total += count;
    			publishProgress(""+(int)((total*100)/lenghtOfFile));
    			output.write(data, 0, count);
    		}
     
    		output.flush();
    		output.close();
    		input.close();
    	} catch (Exception e) {}
    	return null;
     
    	}
    	protected void onProgressUpdate(String... progress) {
    		 //Log.d("ANDRO_ASYNC",progress[0]);
    		// mProgressDialog.setProgress(Integer.parseInt(progress[0]));
    	}
     
    	@Override
    	protected void onPostExecute(String unused) {
    		//dismissDialog(DIALOG_DOWNLOAD_PROGRESS);
    		System.out.println("fin");
     
    	}
    }
    Merci pour l'aide en tout cas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/05/2011, 19h17
  2. Téléchargement d'un fichier texte
    Par Ishizaki dans le forum ASP.NET
    Réponses: 4
    Dernier message: 18/10/2010, 10h06
  3. [PHP 5.0] Générer fichier texte pour téléchargement en local
    Par calitom dans le forum Langage
    Réponses: 3
    Dernier message: 22/07/2009, 12h01
  4. Importer des fichiers textes délimités
    Par Invité dans le forum Outils
    Réponses: 2
    Dernier message: 23/09/2002, 13h56
  5. Instruction pour créer un fichier text ???
    Par Soulsurfer dans le forum Langage
    Réponses: 2
    Dernier message: 06/08/2002, 11h17

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