Archivos

Hola a todos espero que estén bien primero que nada.
Bueno pues como aveces tienes que copiar y pegar correos, que le tienes que quitar la coma y así me surgió hacer este programa.
Cosiste en esto:
Tengo todos estos emails:
 
Y quiero que queden asi:
jonathan@hotmail.com
ab.san@hotmail.com
astillo@villacero.com.mx

Este es mi código:
 

Pero ahi un problema solamente me guarda el primer email que es :
jonathan@hotmail.com

Habia pensado meter todo lo del archivo en un Array y de ahi irme en posiciones.
Si alguien me puede decir alguna mejor solución se lo agradecería.

Saludos.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

prueba unitaria

Separación de tareas, pruebas unitarias, etc... separa tu código: debes tener una rutina a la que le pasas una cadena con todos los mails y te devuelve una lista de cadenas con los puros correos, sin nombres. Eso lo puedes probar pasándole una cadena sin importar de dónde venga.

Aparte haces un método que lea la cadena del archivo. Esa la pruebas comprobando que se lea el contenido que estás esperando (lo que sabes que viene en un archivo de prueba).

En cuanto al código que obtiene las direcciones... yo haría algo así:

 

Imagen de rodrigo salado anaya

Jejeje solo por pasar el rato :P

Hola @JaimeItlzc, pues solo por pasar el ratito libre en el trabajo te dejo una mini mini versión toda chafa y nada funcional de como no lo aria yo jejeje, pero bueno para fines de repaso sirve:

 
 

Imagen de JaimeItlzc

Osea en un bucle

Osea en un bucle como  
 

Asi o me equivoco?
Gracias.

Imagen de rodrigo salado anaya

Algo así aria yo.

Pues así aria yo para resolver tu duda:

 

 

EDIT: Al imprimir el correo editado en el método  , conviene poner un trim(), para evitar los saltos de linea no deseados.

 
por
 

Un saludo a @OscarRyz y un dia me explicas a detalle como jelgorios funciona el metodo readFile; ¿Por qué Orcar? a pus por que el hizo la pregunta en stackoverflow jejejeje pero en relidad esto es para otro hilo y la pregunta a quien la sepa =).

Imagen de JaimeItlzc

Gracias ezamudio y rodrigo salado anaya.

Mira rodrigo asi quedo agarrando los correos de un fichero.
 

En un rato pongo la propuesta de @Ezamudio
Gracias.

Imagen de rodrigo salado anaya

@JaimeItlzc ejemmm

Quehubolas Jaime, pues si en un dado caso ponen contenido en el archivo de correos como:

 

y usas este método tuyo:

se trunca la salida, algo como:
 


ammm, por otro lado revisa bien el código del tu while, para que quede algo como:
checa que reemplace el correo por str vale : ).

Imagen de JaimeItlzc

Split()

Si le quito el metodo   solo me regresa un solo correo que es el primero. :S
Un saludoo..

Si OscarRyz Explicanos :P

Imagen de charlymex

String tokenizer

yo lo hubiese hecho con el StringTokenizer... digo... cuestión de gustos...

Imagen de rodrigo salado anaya

split(",")

Si lo siento Jaime no tengo un jdk a la mano pero me falto código por poner... : S

Mas generico

Si en hay un salto de linea y no se lee la coma o si se olvidaron de poner una coma podriamos centrarnos en un elemento que siempre aparece en un email ,la arroba.
 

Con expresiones regulares

Puedes utilizar expresiones regulares. En este programa el contenido del archivo se pasa a una cadena en la cual se hace la búsqueda de la expresión regular.

 

Si utilizas expresiones regulares, no es necesario hacer un programa ya que muchos editores las soportan (Notepad++, Pspad, etc.). Yo utilizo el editor de Netbeans para hacer transformaciones de texto como el de este ejemplo.

CSV

¿Porqúe no utilizas Comma Separated Values?...Es bien simple en donde tienes: "correo de alguien < calguien@de.com >", "correo de otro alguien < cotroalguien@de.com >", "correo de alguien mas < calguienmas@de.com >", cada cosa es una cadena antes y después de una coma, lo podemos ver a bajo nivel cómo un arreglo. De ahí (después de procesar un csv) a split y de ahí a quitar los "<" y ">". Es la que se me ocurre.

En otro caso de no tener ningún archivo, mi recomendación serían las expresiones regulares o de nuevo el split. Pero me decantaría más por las expresiones regulares.

Liga de CSV para Java aquí.