RESPUESTA A LA PREGUNTA 43837 - JAVA http://www.lawebdelprogramador.com /** Este BEAN define un objeto InformacionCliente con sus respectivos atributos que guarda la informacion del usuario que entra al sistema **/ import java.io.*; import java.util.*; import java.util.zip.*; public class InformacionCliente implements Serializable { private String login, remoteHost, remoteAddr, protocol, scheme, method, Sdiasem, Smes, ruta, dest = null; private static final String archzip = "jornada"; private static final String Wraiz = "c:\\"; private static final String Wruta = "Windows\\Logs\\"; private static final String Wdest = "..\\webapps\\sacip\\"; private static final String Lraiz = "//"; private static final String Lruta = "usr//local//Logs//"; private static final String Ldest = "..//webapps//sacip//"; private int remotePort, d, nummes = 0; private ZipOutputStream bufferZipDSalida = null; private ZipInputStream bufferZipDEntrada = null; private BufferedWriter bufferArchivoDSalida = null; private BufferedInputStream origen = null; private FileOutputStream jornadaZp = null; private FileInputStream archivosDEntrada = null; private CheckedOutputStream chsum = null; private ZipEntry entrada = null; private Calendar calendario = Calendar.getInstance(); private int diasem = java.util.Calendar.DAY_OF_WEEK; private int aņo = java.util.Calendar.YEAR; private int diames = java.util.Calendar.DATE; private int mes = java.util.Calendar.MONTH; private int hora = java.util.Calendar.HOUR_OF_DAY; private int min = java.util.Calendar.MINUTE; private int seg = java.util.Calendar.SECOND; private File F, Fls = null; private static final int BUFFER = 2048; private byte data[] = new byte[BUFFER]; private static final int k = java.util.zip.ZipOutputStream.DEFLATED; InformacionCliente() { setRuta(null); setLogin(null); setProtocol(null); setScheme(null); setMethod(null); setRemoteHost(null); setRemoteAddr(null); setDiaSem(null); setMes(null); setNummes(0); setRemotePort(0); } InformacionCliente(String login, String protocol, String scheme, String method, String remoteHost, String remoteAddr, int remotePort) { setLogin(login); setProtocol(protocol); setScheme(scheme); setMethod(method); setRemoteHost(remoteHost); setRemoteAddr(remoteAddr); setRemotePort(remotePort); } InformacionCliente(String login,String protocol,String scheme, String method, String remoteAddr,int remotePort) { setLogin(login); setProtocol(protocol); setScheme(scheme); setMethod(method); setRemoteAddr(remoteAddr); setRemotePort(remotePort); } /** metodos que asignan o cambian los parametros en particular al objeto InformacionCliente**/ public void setDiaSem(String diasem) { this.Sdiasem = Sdiasem; } public void setLogin(String login) { this.login = login; } public void setMes(String Smes) { this.Smes = Smes; } public void setMethod(String method) { this.method = method; } public void setNummes(int nummes) { this.nummes = nummes; } public void setProtocol(String protocol) { this.protocol = protocol; } public void setRemoteHost(String remoteHost) { this.remoteHost = remoteHost; } public void setRemoteAddr(String remoteAddr) { this.remoteAddr = remoteAddr; } public void setRemotePort(int remotePort) { this.remotePort = remotePort; } public void setRuta(String ruta) { this.ruta = ruta; } public void setScheme(String scheme) { this.scheme = scheme; } /**metodos para obtener los parametro en particular del objeto * InformacionCliente**/ public String getLogin() { return login; } public String getProtocol() { return protocol; } public String getScheme() { return scheme; } public String getMethod() { return method; } public String getRemoteHost() { return remoteHost; } public String getRemoteAddr() { return remoteAddr; } public int getRemotePort() { return remotePort; } public String getDiaSem() { d = calendario.get(diasem); switch (d) { case 1: Sdiasem = "Domingo"; break; case 2: Sdiasem = "Lunes"; break; case 3: Sdiasem = "Martes"; break; case 4: Sdiasem = "Miercoles"; break; case 5: Sdiasem = "Jueves"; break; case 6: Sdiasem = "Viernes"; break; case 7: Sdiasem = "Sabado"; break; } return Sdiasem; } public String getMes() { nummes = calendario.get(mes)+1; switch (nummes) { case 1: Smes = "Enero"; break; case 2: Smes = "Febrero"; break; case 3: Smes = "Marzo"; break; case 4: Smes = "Abril"; break; case 5: Smes = "Mayo"; break; case 6: Smes = "Junio"; break; case 7: Smes = "Julio"; break; case 8: Smes = "Agosto"; break; case 9: Smes = "Septiembre"; break; case 10: Smes = "Octubre"; break; case 11: Smes = "Noviembre"; break; case 12: Smes = "Diciembre"; break; } return Smes; } /** Este metodo regresa la ruta validada ya sea sistemas con linux o windows y * obtiene tambien la raiz del directorio respectivamente**/ public String getRuta() throws IOException { String os = System.getProperty("os.name"); if(os.startsWith("Windows")) { dest = Wdest; setRuta(Wraiz); return Wruta; } else if(os.startsWith("Linux")||os.startsWith("Unix")) { dest = Ldest; setRuta(Lraiz); return Lruta; } else { throw new IOException("Sistema Operativo Desconocido: "+os); } } /** Este metodo regresa un archivo en formato zip con el nombre "dest+archzip" * con los argumentos de la lista de archivos a enzipar, la ruta del origen * y el destino**/ public void creaZip(String rut,String dest,String[] Lista)throws IOException{ try { jornadaZp = new FileOutputStream(dest+archzip+".zip"); chsum = new CheckedOutputStream(jornadaZp,new Adler32()); bufferZipDSalida = new ZipOutputStream( new BufferedOutputStream(chsum)); bufferZipDSalida.setLevel(9); bufferZipDSalida.setMethod(k); for (int i=0;i