Java - csvreader : problème de parsing

Fermé
Joe.Cole Messages postés 10 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 7 mars 2007 - 6 mars 2007 à 23:15
Joe.Cole Messages postés 10 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 7 mars 2007 - 7 mars 2007 à 13:02
Bonjour,

J'ai developpé une application qui fait du mapping XML: à partir des fichiers plats (.txt) je recupère les champs séparés par des tabulations sur deux lignes et je construit mon fichier xml en sortie.

Mon problème c'est que lorsqu'un champ se termine par un caractère accentué il me fait planter le traitement et me sort cette erreur :

com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 2 of 2-byte UTF-8 sequence.

voici mon bout de code qui me fait le parsing sur le fichier plat :

try {
			
			CsvReader csvr = new CsvReader(fileName);
			csvr.setDelimiter('\t');
			csvr.setSkipEmptyRecords(true);
			csvr.readHeaders();
					
			String[] headers = csvr.getHeaders();
			while (csvr.readRecord()) {
				
				for (String header : headers) {
					String value = csvr.get(header);
					data.put(header, value);
				}
			}
			
			csvr.close();
		} catch (IOException e) {
			s_logger.error("Unable to build and serialize XML part from: "+ fileName + ". IO Exception: " + e.toString());
		}
 
		// 2- build the XML file from the temporary map
		
		xml.append("\t\t<part>\n");
		Iterator<String> keys = data.keySet().iterator();
		while (keys.hasNext()) {
			String key = keys.next();
			String value = data.get(key);
			if (!"".equals(key)) { // do not process empty lines		
				xml.append("\t\t\t<").append(key).append(">");
				xml.append(value);
				xml.append("</").append(key).append(">\n");
			}
		}	
		xml.append("\t\t</part>\n");
		return xml;
A voir également:

1 réponse

Joe.Cole Messages postés 10 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 7 mars 2007 4
7 mars 2007 à 13:02
heeeeeeeeeeeeeeeeeeeeeeeeeelp
0