Article View: es.comp.lenguajes.java
Article #26794Re: Ficheros en Java
From: Joan Fisbein
Date: Tue, 01 Dec 1998 00:00
Date: Tue, 01 Dec 1998 00:00
272 lines
7172 bytes
7172 bytes
On Tue, 1 Dec 1998 11:29:50 +0100, "JAAC" <JAAlvarez@proel.es> wrote:
>Hola a todos,
>
>Tengo que hacer una aplicaci�n de carga de una base de datos SQL Server a
>Oracle, la conexi�n con las bases de datos, las consultas y las
>modificaciones, por ahora (s�lo estoy probando) parece que funcionan. El
>problema es que necesito mantener un fichero *log* de las cargas y no s�
>como a�adir texto a un fichero:
>
> Si lo abro de lectura, no puedo escribir ->
> * new BufferedReader(new FileReader("log.txt"))
>
> Si lo abro de escritura, borra lo ya escrito ->
> * new PrintWriter(new FileWriter("log.txt"))
>
> Si lo abro de acceso aleatorio la informaci�n aparece en un formato
>"raro" y no consigo escribir los saltos de l�nea.
> * new RandomAccessFile("log.txt","rw");
>
Yo me he creado un par de clases que se llaman fichero y fichero log, la
clase fichero log escribe lo que quieras al final del fichero y le a�ade la
fecha y hora actuales automaticamente.
Puede que te sirvan aqui van:
import java.io.*;
import java.util.*;
/**
* Clase para el manejo de ficheros.
*
* @author Rafael Lluis
* @author Joan Fisbein
* @version 0.9�
*/
class Fichero {
private String Nombre;
private boolean ok;
/**
* Inicializador de Clase
*
* @param Name Nombre del fichero y ruta del mismo.
*/
Fichero (String Name) {
Nombre = Name;
}//Fichero
/**
* Verifica que el fichero dado es un Directorio.
*
* @return Devuelve <code>True</code> si el fichero
* indicado es un directorio y <code>False</code> en
* caso contrario.
*/
public boolean esDirectorio () {
File Fich = new File (Nombre);
return(Fich.isDirectory());
}//esDirectorio
/**
* Verifica que el fichero existe.
*
* @return Devuelve <code>True</code> si el fichero
* indicado existe y <code>False</code> en caso contrario.
*/
public boolean Existe () {
File Fich = new File (Nombre);
return(Fich.exists());
}//Existe
/**
* Verifica si se puede escribir en el fichero.
*
* @return Devuelve <code>True</code> si el fichero
* indicado permite escritura y <code>False</code>
* en caso contrario.
*/
public boolean puedoEscribir(){
File Fich = new File (Nombre);
return(Fich.canWrite());
}//puedoEscribir
/**
* Verifica si se puede leer en el fichero.
*
* @return Devuelve <code>True</code> si el fichero
* indicado permite lectura y <code>False</code>
* en caso contrario.
*/
public boolean puedoLeer () {
File Fich = new File (Nombre);
return(Fich.canRead());
}//puedoLeer
/**
* @return Devuelve la fecha de �ltima modicicaci�n.
*/
public long Modificado () {
File Fich = new File (Nombre);
return(Fich.lastModified());
}//Modificado
/**
* @return Devuelve el tama�o en <code>Bytes</code>.
*/
public long Tama�o () {
File Fich = new File (Nombre);
return(Fich.length());
}//Tama�o
/**
* Asigna un nombre al fichero.
*
* @param Name Nombre que asigna al fichero.
*/
public void setNombre (String Name){
Nombre = Name;
} //setNombre
/**
* @return Devuelve el nombre del fichero.
*/
public String getNombre () {
return (Nombre);
}//getNombre
/**
* Escribe la cadena de texto dada en el fichero.
*
* @param Texto cadena de texto a escribir.
*/
public void Escribir (String Texto){
try{
FileWriter fw = new FileWriter (Nombre,true);
ok=true;
Texto = Texto +
java.lang.System.getProperty("line.separator");
if (ok) {
fw.write (Texto);
}//if
fw.close();
}//try
catch (IOException e){
ok=false;
System.err.println (e+" No se ha podido acceder al
fichero");
}//catch
}//Escribir
/**
* @exception Throwable
*/
protected void finalize() throws Throwable{
Nombre = null;
super.finalize();
}//finalize
}//Fichero
import java.util.*;
/**
* Clase para el manejo de ficheros de tipo log.
*
* @author Rafael Lluis
* @author Joan Fisbein
* @version 0.9�
*/
class FicheroLog extends Fichero{
private long Tama�oMax;
/**
* Inicializador de Clase
*
* @param Name Nombre del Fichero log y ruta del
mismo.
*/
FicheroLog (String Name) {
super(Name);
Tama�oMax = 65535l;
}//FicheroLog
/**
* Inicializador de Clase
*
* @param Name Nombre del Fichero log y ruta del
mismo.
* @param Bytes Tama�o m�ximo del fichero en bytes.
*/
FicheroLog (String Name, long Bytes){
super(Name);
Tama�oMax = Bytes;
}//FicheroLog
/**
* Asigna un tama�o m�ximo al Fichero log.
*
* @param Bytes Tama�o M�ximo que asigna al fichero.
*/
public void setTama�oMax (long Bytes){
Tama�oMax = Bytes;
} //setTama�oMax
/**
* Permite obtener el tama�o m�ximo del Fichero log.
*
* @return Devuelve el Tama�o M�ximo del
fichero.
*/
public long getTama�oMax() {
return (Tama�oMax);
}//getTama�oMax
/**
* Devuelve la fecha y la hora actuales en un formato especifico.
*
* @return Fecha y Hora en formato
<code>[DD-MM-AAAA HH:MM:SS]</code>.
*/
private String Fecha (){
Calendar Calendario = Calendar.getInstance();
String Hora = new Integer(Calendario.get
(Calendario.HOUR_OF_DAY)).toString();
if (Hora.length() < 2) Hora= "0" + Hora;
String Min = new Integer(Calendario.get
(Calendario.MINUTE)).toString();
if (Min.length() < 2) Min = "0" + Min;
String Seg = new Integer(Calendario.get
(Calendario.SECOND)).toString();
if (Seg.length() < 2) Seg = "0" + Seg;
String Dia = new Integer(Calendario.get
(Calendario.DAY_OF_MONTH)).toString();
if (Dia.length() < 2) Dia = "0" + Dia;
String Mes = new Integer(Calendario.get (Calendario.MONTH) +
1).toString();
if (Mes.length() < 2) Mes = "0" + Mes;
int A�o = Calendario.get (Calendario.YEAR);
String Tiempo = Hora + ":" + Min + ":" + Seg;
String Fecha = Dia + "-" + Mes + "-" + A�o;
return ("[" + Fecha + " " + Tiempo + "]");
}//Fecha
/**
* Escribe la cadena de Texto dada en el Fichero log,
* a�adiendole la fecha y hora actual.
*
* @param Texto Cadena de texto a escribir.
*/
public void Escribir (String Texto){
Texto = Fecha() + "\t" + Texto;
super.Escribir (Texto);
}//Escribir
/**
* @exception Throwable
*/
protected void finalize() throws Throwable{
super.finalize();
}//finalize
}//Class FicheroLog
Technical Details
Message-ID:
<36647991.3221871@gateway>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<740g6p$hfn$1@talia.mad.ibernet.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: 1116f3,1f6b5a7cd97b98c2 X-Google-Attributes: gid1116f3,public From: joanf@bigfoot.com (Joan Fisbein) Subject: Re: Ficheros en Java Date: 1998/12/01 Message-ID: <36647991.3221871@gateway> X-Deja-AN: 417642498 Content-Transfer-Encoding: 8bit References: <740g6p$hfn$1@talia.mad.ibernet.es> X-Trace: 1 Dec 1998 23:22:13 GMT, 139.92.81.17 Organization: IBM.NET X-Notice: should be reported to postmaster@ibm.net Content-Type: text/plain; charset=ISO-8859-1 MIME-Version: 1.0 Newsgroups: es.comp.lenguajes.java X-Complaints-To: postmaster@ibm.net