error while creating mysqledaofactory java eclipse [closed] - java

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 7 days ago.
Improve this question
Problem while trying to create mysqldaofactory java eclipse What methods/tools can be used to determine the cause so that you stop the exception from causing the program to terminate prematurely?
public class MySqlDAOFactory {
EntityManagerFactory factoria;
EntityManager manejadorEntidad;
private static MySqlDAOFactory facto;
private MySqlDAOFactory() {
try {
//generamos el esquema
Persistence.generateSchema("exament3", null);
// creo la factoria
factoria = Persistence.createEntityManagerFactory("exament3");
// creo el manejador de entidad
manejadorEntidad = factoria.createEntityManager();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public FabricanteDAO getFabricanteDAOImpl() {
return new FabricanteDAOImpl(manejadorEntidad);
}
public VehiculoDAO getVehiculoDAOImpl() {
return new VehiculoDAOImpl(manejadorEntidad);
}
public static MySqlDAOFactory conectar() {
if (facto==null)
return new MySqlDAOFactory();
else return facto;
}
}
#Entity
#Table(name="fabricantes")
public class FabricanteVO {
#Id
#GeneratedValue(strategy=GenerationType.IDENTITY)
private int idfabricante;
#Column (length=20)
private String nombre;
#Column (length=20)
private String pais;
private int contador;
#OneToMany(mappedBy="fabricante")
private List<VehiculoVO> vehiculos;
public FabricanteVO(int idfabricante, String nombre, String pais, int contador, List<VehiculoVO> vehiculos) {
super();
this.idfabricante = idfabricante;
this.nombre = nombre;
this.pais = pais;
this.contador = contador;
this.vehiculos = vehiculos;
}
public FabricanteVO(String nombre, String pais, int contador, List<VehiculoVO> vehiculos) {
super();
this.nombre = nombre;
this.pais = pais;
this.contador = contador;
this.vehiculos = vehiculos;
}
public FabricanteVO() {
super();
}
}
public class FabricanteDAOImpl implements FabricanteDAO {
private EntityManager manejadorEntidad;
public FabricanteDAOImpl(EntityManager manejadorEntidad) {
this.manejadorEntidad = manejadorEntidad;
}
#Override
public Optional<FabricanteVO> findByName(String name) {
try {
manejadorEntidad.clear();
// usamos la clase Query creada con el manejador de entidad
Query consultaNombre = manejadorEntidad.createQuery("select f from FabricanteVO f where nombre=:x");
// se da valor al par�metro
consultaNombre.setParameter("x", name);
FabricanteVO fabri = (FabricanteVO) consultaNombre.getSingleResult();
return Optional.of(fabri);
} catch (NoResultException e) {
// previamente he buscado el tipo de error si buscaba un fabricante que no exist�a, comprobado en test02
System.out.println("Error al buscar. Ese nombre de fabricante no existe. " + e.getMessage());
// se devuelve un Optional vacio para evitar nulos
return Optional.empty();
}
}
}

Related

javax.xml.bind.JAXBContext.newInstance error why and how to solve it?

I'm trying to execute in Eclipse an example from a textbook I've just copied but get this (my class is Ejemplo1_JAXB). What does this problem mean and how could I solve it?
Exception in thread "main" java.lang.NoClassDefFoundError:
jakarta/xml/bind/JAXBContext at
java.base/java.lang.Class.getDeclaredMethods0(Native Method) at
java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3434)
at java.base/java.lang.Class.getMethodsRecursive(Class.java:3575) at
java.base/java.lang.Class.getMethod0(Class.java:3561) at
java.base/java.lang.Class.getMethod(Class.java:2257) at
javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:295) at
javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:286) at
javax.xml.bind.ContextFinder.find(ContextFinder.java:391) at
javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:721) at
javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:662) at
clasesjaxb.Ejemplo1_JAXB.main(Ejemplo1_JAXB.java:28) Caused by:
java.lang.ClassNotFoundException: jakarta.xml.bind.JAXBContext at
java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at
java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 11 more
This is the class code:
package clasesjaxb;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
public class Ejemplo1_JAXB {
private static final String MIARCHIVO_XML = "./libreria.xml";
public static void main(String[] args) throws JAXBException, IOException {
//Se crea la lista de libros
ArrayList<Libro> libroLista = new ArrayList<Libro>();
// Creamos dos libros y los añadimos
Libro libro1 = new Libro("Entornos de Desarrollo", "Alicia Ramos", "Garceta", "978-84-1545-297-3");
libroLista.add(libro1);
Libro libro2 = new Libro("Acceso a Datos", "María Jesús Ramos", "Garceta", "978-84-1545-228-7");
libroLista.add(libro2);
// Se crea la librería y se le asigna la lista de libros
Libreria miLibreria = new Libreria();
miLibreria.setNombre("Prueba de librería JAXB");
miLibreria.setLugar("Vista Alegre, Carabanchel, Madrid");
miLibreria.setListaLibro(libroLista);
// Creamos el contexto indicando la clase raíz
JAXBContext context = JAXBContext.newInstance(Libreria.class);
// Creamos el Marshaller, convierte el java bean en una cadena XML
Marshaller m = context.createMarshaller();
//Formateamos el xml para que quede bien
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
// Lo visualizamos con system out
m.marshal(miLibreria, System.out);
// Escribimos en el archivo
m.marshal(miLibreria, new File(MIARCHIVO_XML));
}
}
Which is in the same package than to more classes Libro and Libreria:
package clasesjaxb;
import javax.xml.bind.annotation.XmlType;
#XmlType(propOrder = {"autor", "nombre", "editorial", "isbn"})
public class Libro {
private String nombre;
private String autor;
private String editorial;
private String isbn;
public Libro(String nombre, String autor, String editorial, String isbn) {
super();
this.nombre = nombre;
this.autor = autor;
this.editorial = editorial;
this.isbn = isbn;
}
public Libro() {}
public String getNombre() { return nombre; }
public String getAutor() { return autor; }
public String getEditorial() { return editorial; }
public String getIsbn() { return isbn; }
public void setNombre(String nombre) { this.nombre = nombre; }
public void setAutor(String autor) { this.autor = autor; }
public void setEditorial(String editorial) { this.editorial = editorial; }
public void setIsbn(String isbn) { this.isbn = isbn; }
}
package clasesjaxb;
import java.util.ArrayList;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
#XmlRootElement()
public class Libreria {
private ArrayList<Libro> listaLibro;
private String nombre;
private String lugar;
public Libreria(ArrayList<Libro> listaLibro, String nombre, String lugar) {
super();
this.listaLibro = listaLibro;
this.nombre = nombre;
this.lugar = lugar;
}
public Libreria() {}
public void setNombre(String nombre) { this.nombre = nombre; }
public void setLugar(String lugar) { this.lugar = lugar; }
public String getNombre() { return nombre; }
public String getLugar() { return lugar; }
//Wrapper, envoltura alrededor de la representación XML
#XmlElementWrapper(name = "ListaLibro")
#XmlElement(name = "Libro")
public ArrayList<Libro> getListaLibro() { return listaLibro; }
public void setListaLibro(ArrayList<Libro> listaLibro) { this.listaLibro = listaLibro; }
}

Representing in a Jtable attributes from an object that is inside of another object. JAVA

I am trying to represent in a JTable the attributes from an object that is inside of another object that is inside of a List. This attributes are a representation of data in my DB.
here is my entity:
#Entity
#Table(name="DEPARTAMENTO")
public class Departamento implements Serializable {
private static final long serialVersionUID = 1L;
#Id
#SequenceGenerator(name="SEQ_ID_DPTO" )
#GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_ID_DPTO")
#Column(name="ID_DPTO")
private long idDpto;
#Column(name="NOMBRE")
private String nombre;
#ManyToOne
#JoinColumn(name="ID_ZONA")
private Zona zona;
#OneToMany(mappedBy="departamento")
private List<Localidad> localidads;
public Departamento() {
}
public long getIdDpto() {
return this.idDpto;
}
public void setIdDpto(long idDpto) {
this.idDpto = idDpto;
}
public String getNombre() {
return this.nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public Zona getZona() {
return this.zona;
}
public void setZona(Zona zona) {
this.zona = zona;
}
public List<Localidad> getLocalidads() {
return this.localidads;
}
public void setLocalidads(List<Localidad> localidads) {
this.localidads = localidads;
}
public Localidad addLocalidad(Localidad localidad) {
getLocalidads().add(localidad);
localidad.setDepartamento(this);
return localidad;
}
public Localidad removeLocalidad(Localidad localidad) {
getLocalidads().remove(localidad);
localidad.setDepartamento(null);
return localidad;
}
#Override
public String toString() {
// TODO Auto-generated method stub
return nombre;
}
}
I get all this data through an EJB:
#Stateless
#LocalBean
public class BeanDepartamento implements BeanDepartamentoRemote {
public BeanDepartamento() {
}
#PersistenceContext
EntityManager em;
#Override
public void crear(Departamento departamento) throws ServiciosException {
try {
em.persist(departamento);
em.flush();
System.out.println("Se creo departamento con Éxito");
} catch (Exception e) {
System.out.println("No se puedo crear departamento");
}
}
#Override
public void actualizar(Departamento departamento) throws ServiciosException {
try {
Departamento d=em.find(Departamento.class, departamento.getIdDpto());
em.detach(d);
d.setNombre(departamento.getNombre());
em.merge(d);
em.flush();
System.out.println("Departamento actualizado con éxito");
} catch (Exception e) {
System.out.println("No se pudo crear departmaneto");
}
}
#Override
public void borrar(Departamento departamento) throws ServiciosException {
try {
Departamento d=em.find(Departamento.class, departamento.getIdDpto());
em.remove(d);
em.flush();
System.out.println("Departamento borrado con éxito");
} catch (Exception e) {
System.out.println("No se pudo eliminar departamento");
}
}
#Override
public List<Departamento> ObtenerTodos() {
TypedQuery<Departamento> query=em.createQuery("SELECT d FROM Departamento
d",Departamento.class);
return query.getResultList();
}
#Override
public void asignarZona(Departamento departamento, Zona zona) throws ServiciosException {
try {
Departamento d=em.find(Departamento.class, departamento.getIdDpto());
d.setZona(em.find(Zona.class, zona.getIdZona()));
em.flush();
System.out.println("Zona asignada con éxito");
} catch (Exception e) {
System.out.println("No se pudo asignar zona");
}
}
#Override
public List<Departamento> ObtenerDepartamentoPorFiltro(String filtro) {
TypedQuery<Departamento> query=em.createQuery("SELECT d FROM Departamento d WHERE d.nombre LIKE
:parametro",Departamento.class).setParameter("parametro", "%"+filtro+"%");
return query.getResultList();
}
}
This is how I am trying to fill in my JTable:
public void mostrarDpto() {
try {
BeanDepartamentoRemote departamentoBean = (BeanDepartamentoRemote)
InitialContext.doLookup("pdt-
final/BeanDepartamento!com.dmente.bean.BeanDepartamentoRemote");
List<Departamento> Departamento= departamentoBean.ObtenerTodos();
String[] columnas= {"ID", "Nombre","Zona"};
Object matriz[][]=new Object[Departamento.size()][3];
for (int i = 0; i < matriz.length; i++) {
matriz[i][0]=Long.toString(Departamento.get(i).getIdDpto());
matriz[i][1]=Departamento.get(i).getNombre();
matriz[i][2]=Departamento.get(i).getZona().toString(); //no me carga el nombre o id
}
tbMod.setModel(new DefaultTableModel(
matriz,columnas
));
Departamento.clear();
} catch (NamingException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
The problem is this line: matriz[i][2]=Departamento.get(i).getZona().toString();, when I run my project with this line my JFrame isnt't opening, but I dont have any error message, if I comment this line, everything works fine(just don't show myzona.name` attribute).
It's the first time working with swing, it's for a study project, so I kinda lost here for why is the reason that not represents this data in my JTable.

Error in Android JsonDeserializer when returning response

im new here and i have a problem i can not solve.
im getting this error in the debug in execution time:
05-02 11:56:07.539 18645-24466/com.appss.appssapp D/Retrofit﹕ java.lang.NullPointerException: Null pointer exception during instruction 'invoke-static {v0, v2}, java.util.ArrayList com.appss.appssapp.io.model.PostsResponse$MainResponse.access$002(com.appss.appssapp.io.model.PostsResponse$MainResponse, java.util.ArrayList) // method#19256'
at com.appss.appssapp.io.model.PostsResponse.setPosts(PostsResponse.java:21)
at com.appss.appssapp.io.deserializer.PostsResponseDeserializer.deserialize(PostsResponseDeserializer.java:31)
at com.appss.appssapp.io.deserializer.PostsResponseDeserializer.deserialize(PostsResponseDeserializer.java:21)
at com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:58)
at com.google.gson.Gson.fromJson(Gson.java:810)
at com.google.gson.Gson.fromJson(Gson.java:775)
at retrofit.converter.GsonConverter.fromBody(GsonConverter.java:63)
at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:367)
at retrofit.RestAdapter$RestHandler.access$100(RestAdapter.java:220)
at retrofit.RestAdapter$RestHandler$2.obtainResponse(RestAdapter.java:278)
at retrofit.CallbackRunnable.run(CallbackRunnable.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at retrofit.Platform$Android$2$1.run(Platform.java:142)
at java.lang.Thread.run(Thread.java:818)
the app is compiled correctly, run without a problem, but when i make the calls to the api doesn't show the data, i mean, the api send the data, and i do what i have to do with it, but when i try to send de data to the response in the debug shows me the problem i wrote up above.
this is my code.
Posts.JAVA
public class Posts {
String id; //Id de la publicacion
String titulo; // Titulo de la publicacion
String url; // Url de la publicacion
String imagen; // Imagen cover la publicacion
String autor_nick; // Nick del autor de la publicacion
String visitas; // Lecturas de la publicacion
String comentarios; // Cantidad de comentarios de la publicacion
public Posts () {}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getImagen() {
return imagen;
}
public void setImagen(String imagen) {
this.imagen = imagen;
}
public String getAutor_nick() {
return autor_nick;
}
public void setAutor_nick(String autor_nick) {
this.autor_nick = autor_nick;
}
public String getVisitas() {
return visitas;
}
public void setVisitas(String visitas) {
this.visitas = visitas;
}
public String getComentarios() {
return comentarios;
}
public void setComentarios(String comentarios) {
this.comentarios = comentarios;
}
}
PostsResponse.JAVA
public class PostsResponse {
private MainResponse mainResponse;
public ArrayList<Posts> getPosts(){
return mainResponse.posts;
}
public void setPosts(ArrayList<Posts> posts) {
mainResponse.posts = posts;
}
private class MainResponse {
private ArrayList<Posts> posts;
}
}
PostResponseDeserializer.JAVA
public class PostsResponseDeserializer implements JsonDeserializer<PostsResponse> {
#Override
public PostsResponse deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
Gson gson = new Gson();
PostsResponse response = gson.fromJson(json, PostsResponse.class);
JsonObject postsResponseData = json.getAsJsonObject();
JsonArray postsArray = postsResponseData.getAsJsonArray("posts");
response.setPosts(extractPostsFromJsonArray(postsArray));
return response;
}
private ArrayList<Posts> extractPostsFromJsonArray(JsonArray postsArray) {
ArrayList<Posts> posts = new ArrayList<>();
for (int i = 0; i < postsArray.size(); i++) {
JsonObject postsDatos = postsArray.get(i).getAsJsonObject();
Posts actualPost = new Posts();
String titulo = postsDatos.get("titulo").getAsString();
String imagen = postsDatos.get("imagen_370x208").getAsString();
String visitas = postsDatos.get("visitas").getAsString();
actualPost.setTitulo(titulo);
actualPost.setImagen(imagen);
actualPost.setVisitas(visitas);
posts.add(actualPost);
}
return posts;
}
}
I think the problem might be here
response.setPosts(extractPostsFromJsonArray(postsArray));
but i can't figure out why is this happening.
Any help? .. And sorry for my bad english.
I am not sure but check this.
When you call setposts method it will try to initialize an arraylist while the object that contains the list is not initialized. So you should new an instance of MainResponse first.

When I run it says: null // RELATIONS 1 - 1 [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question appears to be off-topic because it lacks sufficient information to diagnose the problem. Describe your problem in more detail or include a minimal example in the question itself.
Closed 8 years ago.
Improve this question
I am finishing up my program to generate a receipt
My program reads three facts, lecturaAnterior, lecturaActual and stratum.
After doing that tells me nulll
What could it be?
Thank you for your contributions.
CLASS ONE
public class Suscriptor {
private int nuip;
private String nombre;
private String apellido;`
public Suscriptor(int nuip, String nombre, String apellido) {
this.nuip = nuip;
this.nombre = nombre;
this.apellido = apellido;
}
public int getNuip() {
return nuip;
}
public String getNombre() {
return nombre;
}
public String getApellido() {
return apellido;
}
}
CLASS TWO
public class Vivienda {
private String direccion;
private String barrio;
private String ciudad;
private byte estrato;`
public Vivienda(String direccion, String barrio, String ciudad, byte estrato) {
this.direccion = direccion;
this.barrio = barrio;
this.ciudad = ciudad;
this.estrato = estrato;
}
public String getDireccion() {
return direccion;
}
public String getBarrio() {
return barrio;
}
public String getCiudad() {
return ciudad;
}
public byte getEstrato() {
return estrato;
}
CLASS THREE
public class Recibo {
public long lecturaAnterior;
public long lecturaActual;
public Vivienda viviend;
public Suscriptor suscrip;`
public Recibo(long lecturaAnterior, long lecturaActual)
throws Exception {
if (lecturaAnterior <= 0.0F ){
Exception e = new Exception ("La lectura anterior no puede ser menor a cero");
throw e;
}
this.lecturaAnterior = lecturaAnterior;
this.lecturaActual = lecturaActual;
this.viviend = viviend;
this.suscrip = suscrip;
}
public long getLecturaAnterior() {
return lecturaAnterior;
}
public long getLecturaActual() {
return lecturaActual;
}
public Vivienda getViviend (){
return viviend ;
}
public Suscriptor getSuscrip () {
return suscrip ;
}
public long Consumo (){
return ( this.lecturaActual - this.lecturaAnterior );
}
public long cargoBasico (){
if ( this.viviend.getEstrato() == 1 || this.viviend.getEstrato() == 2) {return 2000 ;}
if (this.viviend.getEstrato() == 3) { return 5000 ; }
if (this.viviend.getEstrato() == 4 || this.viviend.getEstrato() == 5 ) { return 5000; }
if (this.viviend.getEstrato() == 6 || this.viviend.getEstrato() == 7 ) { return 12000 ; }
return 0;
}
public long ValorConsumo () {
return ( this.Consumo() * 250 ) ;
}
MAIN
import java.util.Scanner;`
/**
*
* #author christian1
*/
public class Programa {
/**
* #param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
try {
Scanner scan = new Scanner (System.in);
System.out.println("INGRESE LA LECTURA ANTERIOR : ");
long lecturaAnterior = scan.nextLong();
System.out.println("INGRESE LA LECTURA ACTUAL : ");
long lecturaActual = scan.nextLong();
System.out.println("INGRESE EL ESTRATO: ");
byte estrato = scan.nextByte();
Vivienda V1 = new Vivienda ("Av Junin 65-97","Rep De Israel","Villa de las Palmas",estrato );
Suscriptor S1 = new Suscriptor (1113587452,"Juan","Roman");
Recibo R1 = new Recibo (lecturaAnterior,lecturaActual);
System.out.println ("PAGUE PORFAVOR: SEÑOR ... " + S1.getNombre()+"QUE VIVE EN "+ V1.getDireccion() + R1.ValorTotal() + " A CONTINUACION DISCRIMINAMOS SU CONSUMO" + R1.ValorConsumo() + R1.Incremento() + R1.Descuento() + R1.ValorIva() + R1.ValorTotal());
} catch (Exception e){
System.out.println(e.getMessage());
}
} }
As ZouZou suggested you could have find the problem if you debug. Or read the exception may be.
In class Recibo you don't set the values for
Vivienda viviend
Suscriptor suscrip
In the constructor you just assigning them to self. Create those and pass it to constructor as you do for lecturaAnterior, lecturaActual or use a setter.

Delete row in a CSV file and export file in JAVA

I have a program in which I read a CSV file and export a text file type.
CSV attributes are name, date of birth, email and address.
I need a BufferedReader through a user can insert the email of one of the records and delete the entire row in the CSV (deleting name, date of birth, and email address) and re-export the text file type.
I do not have much knowledge of Java so much that could help me guide me to the solution.
I share the code,
Help is appreciated,
Thank you!
public class Personas {
private String nombre;
private String fechaNacimiento;
private String email;
private String direccion;
public Personas(String nombre, String fechaNacimiento, String email,
String direccion) {
super();
this.nombre = nombre;
this.fechaNacimiento = fechaNacimiento;
this.email = email;
this.direccion = direccion;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getFechaNacimiento() {
return fechaNacimiento;
}
public void setFechaNacimiento(String fechaNacimiento) {
this.fechaNacimiento = fechaNacimiento;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getDireccion() {
return direccion;
}
public void setDireccion(String direccion) {
this.direccion = direccion;
}
}
Here is the main class
import java.io.*;
public class Principal {
public static void main(String[] args) {
// TODO Auto-generated method stub
Personas[] miLista = new Personas[100];
int i = 0;
String texto = "";
FileReader lector;
try {
lector = new FileReader("C:\\Users\\CD\\Downloads\\dummydata.csv");
BufferedReader contenido=new BufferedReader(lector);
try {
while((texto=contenido.readLine())!=null){
String[] valores = texto.split(",");
Personas persona = new Personas(valores[0], valores[1], valores[2], valores[3]);
miLista[i]=persona;
i++;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("hay mas de 100 registros en el archivo");
System.out.println("solo se cargaran los primeros 100");
}catch(Exception e){
System.out.println("error desconocido contacte con el desarrollador...");
System.out.println(e.getMessage());
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
System.out.print("El archivo no se encuentra...");
}catch(Exception e){
System.out.println("error desconocido contacte con el desarrollador...");
System.out.println(e.getMessage());
}
for (Personas persona : miLista) {
System.out.print(persona.getNombre());
System.out.print(persona.getDireccion());
System.out.print(persona.getFechaNacimiento());
System.out.println(persona.getEmail());
}
File miArchivo = new File("miNuevoArchivo.txt");
try{
FileWriter fw = new FileWriter(miArchivo);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter wr = new PrintWriter(bw);
for (Personas persona : miLista) {
wr.write(persona.getNombre()+"\t");
wr.append(persona.getFechaNacimiento()+"\t");
wr.append(persona.getDireccion()+"\t");
wr.println(persona.getEmail());
}
wr.close();
bw.close();
}catch(IOException e){
System.out.println(e.getMessage());
}
}
}
I hope it help... but not sure it's what you want to do.
Try to not mix differents languages, see try-with-resource, use List (ArrayList) instead of Arrays, create simple functions and read some docs about iterator.
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class Principal {
private static final String IN = "C:\\Users\\CD\\Downloads\\dummydata.csv";
private static final String OUT = "C:\\Users\\CD\\Downloads\\result.txt";
public static List<Personas> readFile(final String file) throws Exception {
final List<Personas> result = new ArrayList<Personas>();
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
String texto = "";
while ((texto = reader.readLine()) != null) {
final String[] valores = texto.split(",");
final Personas persona = new Personas(valores[0], valores[1], valores[2], valores[3]);
result.add(persona);
}
}
return result;
}
public static void write(final String file, final List<Personas> personas) throws Exception {
new File(file);
try (PrintWriter wr = new PrintWriter(new File(file))) {
for (final Personas persona : personas) {
wr.write(persona.getNombre() + "\t");
wr.append(persona.getFechaNacimiento() + "\t");
wr.append(persona.getDireccion() + "\t");
wr.println(persona.getEmail());
}
}
}
public static void main(final String[] args) throws Exception {
final List<String> emailsToRemove = Arrays.asList("email1#lol.com", "email2#lol.com");
final List<Personas> personas = readFile(IN);
//Remove some personnas
for (Iterator<Personas> it = personas.iterator(); it.hasNext(); /**RIEN**/) {
Personas act = it.next();
if(emailsToRemove.contains(act.getEmail())){
it.remove();
}
}
write(OUT, personas);
}
}

Categories