q largo el titulo.... todos los otros post en este oro los e tenido q solucionar solo pero esta me sobrepaso... no tengo la mas minima idea de donde tengo q poner el codigo para poder controlar los errores al momento de leer el txt..
les comento tengo un servlet q lee archivos a eleccion
Código:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.commons.fileupload.*;
import java.util.*;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class Sube extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
procesaArchivo(request);
String acc= request.getParameter("acc");
String enviara = "/Controla.jsp";
RequestDispatcher envio = getServletContext().getRequestDispatcher(enviara);
envio.forward(request, response);
}
void depura(String cadena)
{
System.out.println("El error es " + cadena);
}
public boolean procesaArchivo(HttpServletRequest req) {
try {
// construimos el objeto que es capaz de parsear la perición
/*FileItemFactory es una interfaz para crear FileItem*/
FileItemFactory file_factory = new DiskFileItemFactory();
/*ServletFileUpload esta clase convierte los input file a FileItem*/
ServletFileUpload servlet_up = new ServletFileUpload(file_factory);
List items = servlet_up.parseRequest(req);
for(int i=0;i<items.size();i++){
/*FileItem representa un archivo en memoria que puede ser pasado al disco duro*/
FileItem item = (FileItem) items.get(i);
if (! item.isFormField()){
/*definición de ruta donde se guardará en el servidor*/
String destino = getServletContext().getContextPath();
String destinofinal = getServletContext().getRealPath(destino+"/..");
File archivo_server = new File(destinofinal+"/doctos/salida.txt");
item.write(archivo_server);
}
else
{
System.out.println("campos de texto "+item.getFieldName()+" --- "+item.getString()+"<br>");
}
}
}
catch(Exception e) {
depura("Error de Aplicación " + e.getMessage());
return false;
}
return true;
}
/** Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
}
con este lo leo... y con esta pagina web controlo las variables leidas y son cargadas en la base de datos
Código:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.io.*"%>
<%@page import="prueba.duoc.Accionista"%>
<%@page import="prueba.duoc.ConexionBD"%>
<%response.reset();
String acc=request.getParameter("acc");
String cuentassalida = request.getParameter("cuentassalida");
String destino = getServletContext().getContextPath();
String destinofinal = getServletContext().getRealPath(destino+"/..");
FileReader f = new FileReader(destinofinal+"/doctos/salida.txt");
BufferedReader b = new BufferedReader(f);
int codigo= 0;
String rut= null;
String rsocial= null;
String sexo=null;
String estC=null;
String tipo=null;
int acciones= 0;
Accionista a= new Accionista();
while (true)
{
String linea = b.readLine();
if (linea == null)
break;
String lista[] = linea.split(";");
for (int i = 0; i <lista.length;i++)
{
if(i==0)
codigo=Integer.parseInt(lista[i]);
else if(i==1)
rut = lista[i];
else if(i==2)
rsocial =lista[i];
else if(i==3)
sexo = lista[i];
else if(i ==4)
estC=lista[i];
else if(i==5)
tipo = lista[i];
else if(i==6)
acciones =Integer.parseInt(lista[i]);
a.setAccodigo(codigo);
a.setAccrut(rut);
a.setAccrazonsocial(rsocial);
a.setAccsexo(sexo);
a.setAccestadocivil(estC);
a.setAcctipo(tipo);
a.setAccacciones(acciones);
a.insertar(); -----este metodo no tiene q iegar a ejecutarse aun... a menos -----------------------------q sean validos los registros
}
}
b.close();
f.close();
if (a.insertar()!=0){
out.println("falla al cargar");
}else{%>
<head>
<meta http-equiv="refresh" content="0; url=/Prueba/menu.jsp">
</head>
<p>Cargando datos...</p>
<%}
%>
el proble esq io no kiero cargarlos registros leidos aun... necesito poder validarlos... como por ejemplo q el id no se repita q haya sido un varchar o string en vez de in cosas asi.... donde tengo q poner las distintas sentencias para poder validar esto... o mejor aun puedo guardar lo leido en un array y manejar desde ahi y luego ingresar los datos a la base de datos..... muy agradecido de antemano