Buenas, este es el jsp que desarrolle, recorre una carpeta y por cada archivo que encuentra, lo lee e inserta algunas celdas en la base de datos... ya jala bien todo... solo quise agregar que al final de leer e insertar en la base de datos , elimine el archivo y que siga con el siguiente, el problema es que creo que no cierro bien el archivo y no se cuales son los metodos que se tienen que cerrar.
Llegué a la conclusión de que no se pueden eliminar por que si los quiero eliminar directamente de la carpeta me manda error, por que tomcat los sigue usando.
Class.forName("com.mysql.jdbc.Driver");
Connection conexion = DriverManager.getConnection("jdbc:mysql://******:3306/******", "******", "******");
Statement StMarcador = conexion.createStatement();
ResultSet rs_marcador = null;
//Carpeta donde se guardaran los archivos
File folder = new File("C:/Servidorweb/apache-tomcat-6.0.37/webapps/Telefonos/Archivos");
File[] listOfFiles = folder.listFiles();
//Inicializa array contenedor de nombres de archivos
String[] array = new String[listOfFiles.length];
for (int i = 0; i < listOfFiles.length; i++) //Recorrido a lista de archivos , se almacenan en array
{
if (listOfFiles[i].isFile())
{
array[i] = listOfFiles[i].getName();
//out.println(array[i]);
}
}
//out.println(array[0]);
for(int j = 0; j < array.length ;j++) // Recorre archivo por archivo
{
//Ruta de Archivo
FileInputStream fileInputStream = new FileInputStream("C:/Servidorweb/apache-tomcat-6.0.37/webapps/Telefonos/Archivos/" + array[j]);
HSSFWorkbook workbook = new HSSFWorkbook(fileInputStream);
//Nombre de Hoja del libro Excel
HSSFSheet worksheet = workbook.getSheet("Detalle de Llamadas");
//Obtiene la fila numero 3
//obtiene el numero de filas
int rowsNum = worksheet.getPhysicalNumberOfRows();
for(int l = 3; l < rowsNum;l++) // Recorre cada fila
{
HSSFRow row1 = worksheet.getRow(l);
//Aqui pueden jugar con los valores de la celda, o ya sea crear una iteración que haga un recorrido por todo la hoja de excel
HSSFCell cellA1 = row1.getCell((short) 0);
String a1Val = cellA1.getStringCellValue();
HSSFCell cellB1 = row1.getCell((short) 2);
String b1Val = new DecimalFormat("############").format(cellB1.getNumericCellValue());
//out.println(rowsNum);
HSSFCell cellC1 = row1.getCell((short) 3);
String c1Val = cellC1.getStringCellValue();
String chip = array[j].substring(0,8);
a1Val = a1Val.substring(0,16);
String hora = a1Val.substring(10,16);
a1Val = a1Val.substring(0,10);
DateFormat userDateFormat = new SimpleDateFormat("dd/mm/yyyy");
DateFormat dateFormatNeeded = new SimpleDateFormat("yyyy-dd-mm");
Date date = userDateFormat.parse(a1Val);
String fecha = dateFormatNeeded.format(date);
StMarcador.executeUpdate("insert into smsdetallemarcacion2(sdm_fecha,sdm_tarjetasim,sdm_telefono,sdm_destino,sdm_tipocel,sdm_fechaorig,sdm_horaorig,sdm_minorig,sdm_tipohoraorig,sdm_estatus,sdm_feccarga) VALUES ('"+fecha+hora+":00','"+chip+"','"+b1Val+"','"+c1Val+"','0','0-0-0','0','0','0','0',now());");
/*out.println(chip);
out.println("A1: " + a1Val.substring(0,16));
out.println("B1: " + b1Val);
out.println("C1: " + c1Val);*/
} // Recorre cada fila
//Eliminar Archivo
String archivostr = "C:/Servidorweb/apache-tomcat-6.0.37/webapps/Telefonos/Archivos/" + array[j];
fileInputStream.close();
File archivo = new File(archivostr);
//if (archivo.exists()){
archivo.delete();
} // Recorre archivo por archivo
out.println("Listo! Datos cargados a la base de datos!");
StMarcador.close();
conexion.close();