Conversor CSV Aprende programación con ejercicios Java

Lección:

Administración de Archivos


Ejercicio:

Conversor CSV 35


Objetivo:

El CSV ("Valores separados por comas") es un formato de intercambio utilizado por muchas hojas de cálculo y bases de datos de sistemas de gestión. Es una serie de valores separados por comas encerrados entre comillas, aunque hay variantes que no usan comillas, o que usan punto y coma como separador. A menudo las cifras no están entre comillas. Un archivo de ejemplo sería:

"Juan", "López Pérez", "Alicante", 25
"Antonio", "Pérez López", "Madrid", 27

Debe crear un programa que lea un archivo CSV como el anterior, con cuatro bloques de datos (los primeros 3 son de texto y el último será numérico), cada uno de los cuales está en una línea, y generar un archivo de texto cada entrada contiene una línea como esta:

John
Pérez López
Alicantino
25
Anthony
Pérez López
Madrid
27


Código:

package ReaderCSV;
import java.util.*;

public class Main
{
	public static void main(String[] args)
	{
		System.out.println("CSV READER");
		System.out.println("--------------------------------------");
		System.out.print("Enter name of file .csv: ");

		String nameFile = new Scanner(System.in).nextLine();
		java.io.InputStreamReader myfile;
		String cadena;
		int position;

		try
		{
			myfile = new java.io.InputStreamReader(nameFile, System.Text.Encoding.Default);
			String line;
			do
			{
				line = myfile.ReadLine();
				if ((line != null) && (!line.equals("")))
				{
					try
					{
						line = line.replace("\"", "");

						position = line.indexOf(';');
						cadena = line.substring(0, position);
						line = tangible.StringHelper.remove(line, 0, position + 1);
						System.out.println(cadena + "\n");

						position = line.indexOf(';');
						cadena = line.substring(0, position);
						line = tangible.StringHelper.remove(line, 0, position + 1);
						System.out.println(cadena + "\n");

						position = line.indexOf(';');
						cadena = line.substring(0, position);
						line = tangible.StringHelper.remove(line, 0, position + 1);
						System.out.println(cadena + "\n");

						cadena = line.substring(0);
						System.out.println(cadena + "\n");
					}
					catch (RuntimeException e)
					{
						System.out.println("Error !!! " + e.getMessage());
					}
				}
			} while (line != null);
		}
		catch (RuntimeException e)
		{
			System.out.println("Error !!!" + e.getMessage());
		}
	}
}