🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.lenguajes.java
Article #26794

Re: Ficheros en Java

#26794
From: Joan Fisbein
Date: Tue, 01 Dec 1998 00:00
272 lines
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-mail
References: <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