utf8 libreria example convertir java parsing encoding

libreria - java.lang.NumberFormatException para la cadena de entrada "1"



jsonobject java example (1)

Entonces, tengo un problema que realmente me molesta. Tengo un analizador simple que hice en Java. Aquí está la pieza del código relevante:

while( (line = br.readLine())!=null) { String splitted[] = line.split(SPLITTER); int docNum = Integer.parseInt(splitted[0].trim()); //do something }

El archivo de entrada es un archivo CSV, la primera entrada del archivo es un entero. Cuando empiezo a analizar, inmediatamente obtengo esta excepción:

Exception in thread "main" java.lang.NumberFormatException: For input string: "1" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.parseInt(Integer.java:615) at dipl.parser.TableParser.parse(TableParser.java:50) at dipl.parser.DocumentParser.main(DocumentParser.java:87)

Revisé el archivo, de hecho tiene 1 como primer valor (no hay otros caracteres en ese campo), pero aún recibo el mensaje. Creo que puede deberse a la codificación de archivos: es UTF-8, con líneas finales de Unix. Y el programa se ejecuta en Ubuntu 14.04. Cualquier sugerencia sobre dónde buscar el problema es bienvenida.


Usted tiene una BOM de BOM en frente de ese número; si copio lo que parece "1" en su pregunta y lo vim en vim , veo que tiene un FE FF (por ejemplo, una BOM ) frente a él. Desde ese enlace:

Los bytes exactos que componen la lista de materiales (BOM) serán los que el carácter Unicode U + FEFF se convierte en ese formato de transformación.

Así que ese es el problema, consuma el archivo con el lector apropiado para la transformación (UTF-8, UTF-16 big-endian, UTF-16 little-endian, etc.) con el que está codificado el archivo. Consulte también esta pregunta y sus respuestas para obtener más información sobre la lectura de archivos Unicode en Java.