UNIDAD 7: JAVA REGISTROS Y ARCHIVOS SECUENCIALES

JAVA TEMA 5: JAVA GRABACION ARCHIVO SECUENCIAL

En java Grabación y lectura son los dos procesos mas comunes con archivos en cualquier lenguaje de programación.

Codigo de grabación:

import java.io.*; import javax.servlet.*;
import javax.servlet.http.*;
public class prog34 extends HttpServlet
{ public void doPost (HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
// se debe crear un objeto de tipo archivo
DataOutputStream archivo = null;
//historia triste se deben grabar y leer solo campo a campo
// creando e inicializando los campos
int matricula=0;
String nombre=new String("");
int edad=0;
Integer temp1=new Integer(0);
try{
//* Creando y grabando a un archivo, esta larga la instrucción*/
archivo = new DataOutputStream( new FileOutputStream("c:\\xitami\\servlets\\susitio\\archivo1.dat",true) );
//capturando y convirtiendo los datos de la pagina
temp1 = temp1.valueOf( request.getParameter("MATRICULA"));
matricula= temp1.intValue();
nombre=request.getParameter("NOMBRE");
temp1 =temp1.valueOf(request.getParameter("EDAD"));
edad= temp1.intValue();
//grabando al archivo
archivo.writeInt(matricula);
archivo.writeUTF(nombre);
archivo.writeInt(edad);
archivo.close();
//pagina de aviso
PrintWriter pagina;
response.setContentType("text/html");
pagina = response.getWriter();
pagina.println("<HTML>");
pagina.println("REGISTRO? INSERTADO USAR BACK PARA REGRESAR E INSERTAR OTRO");
pagina.println("</HTML>");
pagina.close();
}
catch(FileNotFoundException fnfe) { /* Archivo no encontrado */ }
catch (IOException ioe) { /* Error al escribir */ }
destroy();
};
public void destroy(){super.destroy();};
}

NOTAS:

Se construye la aplicacion de tipo java servlet
Se usa una clase llamada FileOutputStream, especializada en archivos con muchos metodos y constructores para crear, manipular y procesar archivos, el constructor usado solo lleva dos parametros, el primero todo la ruta o path a donde quedara el archivo(cuidado con no poner la doble diagonal \\) y el segundo parametro es la palabra “true”, esto es para que el archivo se abra en modo llamado “APPEND”, es decir que cada nuevo registro se vaya escribiendo al final del archivo, si no se pone este parametro(true), un nuevo registro se sobreescribiria sobre el registro anterior.

Sin embargo en el programa no se uso FILEOUTPUSTREAM( solo para crear el archivo), sino se usa DATAOUTPUTSTREAM, esta segunda clase es derivada de la anterior y comparte muchos de sus metodos, la diferencia es que fileoutputstream esta especializada en grabar y leer bytes, mientras que dataoutputstream esta especializada en grabar y leer datos formateados, observar que los metodos que uso el objeto archivo, se especializan en algun tipo de dato en especial, sus metodos son:

Method Summary
“void” flush”()” Flushes this data output stream.
“int” size”()” Returns the current value of the counter “written”, the number of bytes written to this data output stream so far.
“void” write”(byte[] b, int off, int len)“
Writes “len” bytes from the specified byte array starting at offset “off” to the underlying output stream.
“void” write”(int b)” Writes the specified byte (the low eight bits of the argument “b”) to the underlying output stream.
“void” writeBoolean”(boolean v)” Writes a “boolean” to the underlying output stream as a 1-byte value.
“void” writeByte”(int v)“
Writes out a “byte” to the underlying output stream as a 1-byte value.
“void” WriteBytes (String s) Writes out the string to the underlying output stream as a sequence of bytes.
“void” writeChar”(int v)” Writes a “char” to the underlying output stream as a 2-byte value, high byte first.
“void” WriteChars (String s) writes a string to the underlying output stream as a sequence of characters.
“void” writeDouble”(double v)“
Converts the double argument to a “long” using the “doubleToLongBits” method in class “Double”, and then writes that “long” value to the underlying output stream as an 8-byte quantity, high byte first.
“void” writeFloat”(float v)” Converts the float argument to an “int” using the “floatToIntBits” method in class “Float”, and then writes that “int” value to the underlying output stream as a 4-byte quantity, high byte first.
“void” writeInt”(int v)“
Writes an “int” to the underlying output stream as four bytes, high byte first.
“void” writeLong”(long v)“
Writes a “long” to the underlying output stream as eight bytes, high byte first.
“void” writeShort”(int v)“
Writes a “short” to the underlying output stream as two bytes, high byte first.
“void” writeUTF (String str) writes a string to the underlying output stream using UTF-8 encoding in a machine-independent manner.

TABLA TOMADA DEL API DE JAVA

Observar que la grabación lleva un try-catch filenotfound y ioexception, que son obligatorios o no compila el programa.

No olvidar cerrar el archivo, con la instruccion archivo.close

El Codigo html que alimenta este java servlet es el siguiente:

<HTML>
<FORM ACTION=http://programacionfacil.com:9090/servlet/susitio.prog34 METHOD=POST>
RECORDAR QUE PARA SERVLETS EL PUERTO ES 9090<BR>
MATRICULA:<INPUT TYPE=TEXT NAME=MATRICULA><BR>
NOMBRE:<INPUT TYPE=TEXT NAME=NOMBRE><BR>
EDAD:<INPUT TYPE=TEXT NAME=EDAD><BR>
<INPUT TYPE=SUBMIT VALUE=GRABAR>
</FORM></HTML>

TAREAS JAVA JSP JAVA SERVLET

1.- crear y cargar un archivo2.dat que contenga registros de empleados.

2.- crear y cargar un archivo3.dat que contenga registros de productos

Politica de Privacidad