rss
[java] récupération de fichier texte
par flora806
 Fil de Discussions
Statut :
vendredi 23 mars 2007 à 14:11:13
salut à tous
j'espère que qqu pourrait m'aider :)
j'ai utilisé le code ci-dessous pour un récupérer un fichier texte en java. ce fichier contient des string + int

ce fichier se présente comme ça:
Id|age|sexe|profession|CodePostal

Mais en fait quand j'exécute ça, ça me donne rien en output et la démo ne marche pas.
je ne sais pas c dû à quoi :(
est-ce que qqu aurait une idée?

Merci.
Flora
********

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;
import java.io.Reader;
import java.util.Vector;

public class DemogData {
private String filePath;
private String [][] data;

public DemogData(String filePath) throws IOException {
super();
this.filePath = filePath;
parseFile();
}

private void parseFile() throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(filePath));

String line = null;
List<String> items = new ArrayList<String>();
StringTokenizer splitter;
while ((line = reader.readLine()) != null) {
items.add(line);
}
data = new String [items.size()][5];
int counter = 0;
for (String item : items) {
splitter = new StringTokenizer(item, "|");
int nv = splitter.countTokens() ;

counter++;
}


}



public String[] getuList(String occupation) {
String[] uList = new String[0];
for (String[] dataLine : data) {
if (dataLine[3] == occupation) {
String[] newList = new String[uList.length + 3];
int counter = 0;
for (String entry : uList) {
newList[counter] = entry;
counter++;
}
newList[counter] = dataLine[0];
uList = newList;
}
}
return uList;
}

public static void main(String[] args) {
try {
DemogData demo = new DemogData("C:/u.txt");
String occupation = "student";
System.out.print("utilisateurs ayant profession" + " " + occupation + ": ");
for (String i : demo.getuList(occupation)){
System.out.println(i + " ");
}

} catch (IOException e) {
e.printStackTrace();
}
}

}

*************
Configuration: Windows XP
Internet Explorer 6.0
Répondre à flora806  Signaler ce message aux modérateurs Aller au dernier message


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par HackTrack, le mardi 27 mars 2007 à 15:34:54 Fil de Discussions 
Salut!

tiens, il me semble avoir déjà vu ce code quelquepart... ;-)

J'ai corrigé tes erreurs. Regarde les commentaires dans le code.

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

public class DemogData {
	private String filePath;

	private String[][] data;

	public DemogData(String filePath) throws IOException {
		super();
		this.filePath = filePath;
		parseFile();
	}

	private void parseFile() throws IOException {
		BufferedReader reader = new BufferedReader(new FileReader(filePath));

		String line = null;
		List<String> items = new ArrayList<String>();
		StringTokenizer splitter;
		while ((line = reader.readLine()) != null) {
			items.add(line);
		}
		data = new String[items.size()][5];
		int counter = 0;
		for (String item : items) {
			splitter = new StringTokenizer(item, "|");
			// La ligne suivante ne sert à rien, je l'ai mise en commentaire
			// int nv = splitter.countTokens();
			int columnCounter = 0;
			while (splitter.hasMoreElements()) {
				// Tu ne remplissais pas ton tableau: normal que ça ne
				// fonctionnait pas ;-)
				data[counter][columnCounter] = (String) splitter.nextElement();
				columnCounter++;
			}
			counter++;
		}
		System.out.println(data.length + " lines read from file");
	}

	public String[] getuList(String occupation) {
		ArrayList<String> uList = new ArrayList<String>();
		for (String[] dataLine : data) {
			// Lorsque tu veux comparer 2 String, utilise la méthode
			// String.equals() qui te premet de comparer les 2 String sur leur
			// contenu plutôt que sur leur référence
			// Essaye les deux lignes suivantes:
			// System.out.println(new String("a")==new String("a"));
			// System.out.println(new String("a").equals(new String("a")));
			if (dataLine[3].equals(occupation)) {
				uList.add(dataLine[0]);
			}
		}
		String[] uListArray = new String[uList.size()];
		return (String[]) uList.toArray(uListArray);
	}

	public static void main(String[] args) {
		try {
			DemogData demo = new DemogData("C:/u.txt");
			String occupation = "student";
			System.out.println("utilisateurs ayant profession" + " "
					+ occupation + ": ");
			for (String i : demo.getuList(occupation)) {
				System.out.println(i + " ");
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}



;-)
HackTrack
Répondre à HackTrack
Discussions pertinentes trouvées dans le forum
09/09 12h29Récupération fichier texte sous accessProgrammation26/10 17h2113
18/01 23h14[JAVA]Recupération fichie txt dans une listeProgrammation08/03 16h109
09/04 11h10applet java et fichier texteProgrammation29/04 14h0814
20/03 13h18[java] récupération de fichier texte matriceProgrammation23/03 13h514
Plus de discussions sur « [java] récupération de fichier texte » Discussion en cours Discussion fermée Problème résolu
Logiciels pertinents trouvés dans les téléchargements
Télécharger Notepad2 2.1.19Notepad2 - Notepad2 est un blc-note libre possédant des fonctionnalités avancées de coloration syntaxique. <h2>Fonctionnalités</h2>...Catégorie: Traitement de texte
Licence: Freeware/gratuit
Télécharger bulk rename utility 2.7.0.3bulk rename utility - Bulk Rename Utility est un programme conçu pour renommer plusieurs fichiers simultanément. Sa conception se base sur des...Catégorie: Gestion de fichiers
Licence: Freeware/gratuit
Télécharger ExamDiff 1.8ExamDiff - Ce petit logiciel est capable de comparer le contenu de deux fichiers textes, et d'afficher les différences entre eux avec...Catégorie: Système
Licence: Freeware/gratuit
Télécharger Metapad 3.51Metapad - metapad est un éditeur de texte simple, petit et rapide (et complètement gratuit) avec des fonctionnalités similaires à...Catégorie: Traitement de texte
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « [java] récupération de fichier texte »
Répondre
Titre du message :
Votre pseudo:
Votre email :
Message: 
  •  
  •  
Options: Recevoir les réponses par mail.
 

Aide