Archivos_2.java_



// inmediatamente, muestra todo el contenido del archivo

import java.io.*;
import java.util.*;

public class ARCHIVOS
{
	PrintStream PS = System.out;
	InputStream IS = System.in;
	PrintStream A_E = new PrintStream(new FileOutputStream("ENTEROS.TXT"));
	PrintStream A_F = new PrintStream(new FileOutputStream("FLOTANTES.TXT"));
	PrintStream A_C = new PrintStream(new FileOutputStream("CADENAS.TXT"));

	public ARCHIVOS() throws IOException { Ciclo(); }
  
	public static void main(String A[]) throws IOException { new ARCHIVOS(); }
  
	void GrabarDatos(PrintStream ARCHIVO, String DATO) throws IOException
	{ ARCHIVO.println(DATO); }
	
	void LeerDatos(String archivo)
	{
		String Linea;
		PS.println("Contenido del archivo -" + archivo + "-:");
		try
		{
			BufferedReader ARCHIVO   = new BufferedReader(new InputStreamReader(new FileInputStream(archivo)));
			while((Linea = ARCHIVO.readLine()) != null )
				PS.println(Linea);
			ARCHIVO.close();
		}
		catch (IOException e) { PS.println("Error en archivo de lectura"); }
	}
	
	String LeeDato(String Mensaje) throws IOException
	{
		BufferedReader EntradaDeTeclado = new BufferedReader(new InputStreamReader(System.in));
		PS.print(Mensaje + " ");
		PS.flush();
		return EntradaDeTeclado.readLine();
	}
	
	void Ciclo() throws IOException
	{
		StringTokenizer ST = null;
		String COMANDO = "", TIPO = "";
		
		while(!COMANDO.equalsIgnoreCase("Salir"))
		{
			COMANDO = LeeDato("Instrucciòn: ");
			ST = new StringTokenizer(COMANDO);
			TIPO = ST.nextToken();
			if (TIPO.equalsIgnoreCase("G")) GUARDA(ST);
			if (TIPO.equalsIgnoreCase("L")) LEE(ST);
		}
		A_E.close(); A_F.close(); A_C.close();
	}
	
	void GUARDA(StringTokenizer ST) throws IOException
	{
		String TIPO = "";
		
		if (ST.countTokens() != 2) PS.println("Error de cantidad de paràmetros...");
		else
		{
			TIPO = ST.nextToken();
			if (TIPO.equalsIgnoreCase("ENTEROS")) GrabarDatos(A_E, ST.nextToken());
			if (TIPO.equalsIgnoreCase("FLOTANTES")) GrabarDatos(A_F, ST.nextToken());
			if (TIPO.equalsIgnoreCase("CADENAS")) GrabarDatos(A_C, ST.nextToken());
		}
	}
	
	void LEE(StringTokenizer ST)
	{
		String TIPO = "";
		
		if (ST.countTokens() != 1) PS.println("Error de cantidad de paràmetros...");
		else
		{
			TIPO = ST.nextToken();
			if (TIPO.equalsIgnoreCase("ENTEROS")) LeerDatos("ENTEROS.TXT");
			if (TIPO.equalsIgnoreCase("FLOTANTES")) LeerDatos("FLOTANTES.TXT");
			if (TIPO.equalsIgnoreCase("CADENAS")) LeerDatos("CADENAS.TXT");
		}
	}
}