Java - csvreader : problème de parsing

Joe.Cole Messages postés 10 Statut Membre -  
Joe.Cole Messages postés 10 Statut Membre -
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 Statut Membre 4
 
heeeeeeeeeeeeeeeeeeeeeeeeeelp
0