Mostrando entradas con la etiqueta BufferedReader. Mostrar todas las entradas
Mostrando entradas con la etiqueta BufferedReader. Mostrar todas las entradas

miércoles, 20 de marzo de 2013

Contar palabras que contiene un Archivo de Texto

Diseñar un programa que solicite desde el teclado el nombre del archivo de texto el cual deberá contar todas las palabras que contiene el archivo.
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;

class Cont_Palabras
{
    public static void main(String [] arg)
    {
        Scanner teclado = new Scanner(System.in);
        System.out.print("Escribe el nombre del archivo de texto: ");
        String archivo = teclado.next();
        
        try 
        {            
            BufferedReader lee = new BufferedReader(new FileReader(archivo));
            
            String linea;
            int i, a = 0;            
            while((linea = lee.readLine()) != null)
            {
                System.out.println(linea);
                for(i=0; i < linea.length(); i++)
                {
                    if(i==0)
                    {
                        if(linea.charAt(i)!=' ')
                            a++;
                    }
                    else
                    {
                        if(linea.charAt(i-1)==' ')
                            if(linea.charAt(i)!=' ')
                                a++;
                    }
                }
            }
            System.out.println("\nEL archivo contiene "+a+" palabras");
            lee.close();
        }
        catch(IOException a)
        {
            System.out.println(a);
        }
    }
}
Output:

Escribe el nombre del archivo de texto: vida.txt
Cuando me hallaba en clase de geometría me decían que solo había tres dimensiones y siempre lo acepte. Estaban equivocados. Hay mas. Nuestro mundo, en el que ahora vivimos, es tridimensional, pero el próximo no lo es. Por eso es tan difícil contárselo.

EL archivo contiene 43 palabras

Exhibir la linea mas larga del contenido de un Archivo de Texto

Diseñar una aplicación de consola en Java, el cual solicite desde el teclado un archivo de texto del cual deberá de exhibir solo la linea de mayor magnitud y el total de caracteres que contiene la linea.
import java.io.FileReader;
import java.io.IOException;
import java.io.BufferedReader;
import java.util.Scanner;

public class Linea_Mayor
{
    public static void main(String[] args) throws IOException
    {
        Scanner teclado = new Scanner(System.in);
        System.out.print("Escribe el archivo de texto a procesar: ");
        String archivo = teclado.next();
        try 
        {
            BufferedReader lee1 =new BufferedReader(new FileReader(archivo));
            
            String linea = "", maslarga = "";
            System.out.println("Comprobando archivo...");
            int i = 0;
            while((linea = lee1.readLine())!=null)
            {
                i++;
                System.out.println(linea);
                if (linea.length() > maslarga.length())
                {
                    maslarga = linea;
                }
            }
            System.out.println("\nEl Archivo tiene "+i+" Lineas");
            System.out.println("La linea mas larga es:\n" + maslarga);
            System.out.println("Y tiene " + maslarga.length() + " caracteres");
            lee1.close();
        }catch(IOException e)
        {
            System.out.println("Ha ocurrido un error:");
        }
        finally
        {
          System.out.println("fin...");
        }
    }
}
Output:
Escribe el archivo de texto a procesar: texto.txt
Comprobando archivo...
El que esta al final del camino,
Conoce el principio y conoce el final,
El que esta al principio, solo ha
Andado unos pocos pasos, el resto le
Es desconocido.

El Archivo tiene 5 Lineas
La linea mas larga es:
Conoce el principio y conoce el final,
Y tiene 38 caracteres
fin...

Comparar dos Archivos de Texto linea por linea

Diseñar una aplicación en java que solicite desde el teclado, el nombre de dos archivo de texto y cuyo contenidos deberá comparar linea por linea.
import java.io.FileReader;
import java.io.IOException;
import java.io.BufferedReader;
import java.util.Scanner;

public class Compara_LineaxLinea
{
    public static void main(String[] args) throws IOException
    {
        Scanner teclado = new Scanner(System.in);
        System.out.print("Escribe el primer archivo de texto a comparar: ");
        String archivo1 = teclado.next();
        System.out.print("Escribe el segundo archivo de texto a comparar: ");
        String archivo2 = teclado.next();
        
        try 
        {           
            BufferedReader lee1 =new BufferedReader(new FileReader(archivo1));
            BufferedReader lee2 =new BufferedReader(new FileReader(archivo2));
            
            String linea1="", linea2 = "";
            System.out.println("Comparando Archivos...");
            int cont1=0, cont2=0;
            
            while(linea1!=null || linea2!=null)
            {
              linea1=lee1.readLine();
              linea2=lee2.readLine();
              
              if(linea1!=null)
              {
                  cont1++;  
              }  
              if(linea2!=null)
              {
                  cont2++;
              }
            }
            System.out.println("Fin de comparacion de los archivos...\n");  
            System.out.println("El primer archivo tiene "+cont1+" Lineas");  
            System.out.println("El segundo archivo tiene "+cont2+" Lineas");
            if(cont1 == cont2)
            {
                System.out.println("Los archivos comparardos son iguales");
            }
            else
            {
                System.out.println("Los archivos comparados son diferentes");
            }
            lee1.close();
            lee2.close();
        }catch(IOException e)
        {
            System.out.println("Ha ocurrido un error:");
        }
        finally
        {
          System.out.println("fin...");
        }
    }
}

Output:
Escribe el primer archivo de texto a comparar: aprobados.txt
Escribe el segundo archivo de texto a comparar: reprobados.txt
Comparando Archivos...
Fin de comparacion de los archivos...

El primer archivo tiene 6 Lineas
El segundo archivo tiene 4 Lineas
Los archivos comparados son diferentes
fin...

lunes, 18 de marzo de 2013

Comparar dos archivos de texto en Java

Comparar dos archivos de texto linea por linea en Java.
import java.io.FileReader;
import java.io.IOException;
import java.io.BufferedReader;

public class Compara
{
    public static void main(String[] args) throws IOException
    {
        try
        {
            BufferedReader lee1 =new BufferedReader(new FileReader("original.txt"));
            BufferedReader lee2 =new BufferedReader(new FileReader("original.txt"));
           
            String linea1="", linea2 = "";
            System.out.println("Comparando Archivos...");
            int cont1=0, cont2=0;
           
            while(linea1!=null || linea2!=null)
            {
              linea1=lee1.readLine();
              linea2=lee2.readLine();
              if(linea1!=null){
                  cont1++;
              }
              if(linea2!=null){
                  cont2++;
              }
            };
            System.out.println("Fin de comparacion de los archivos...\n");
            System.out.println("El primer archivo tiene "+cont1+" Lineas");
            System.out.println("El segundo archivo tiene "+cont2+" Lineas");
            if(cont1 == cont2){
                System.out.println("Los archivos comparados son iguales");
            }
            else{
                System.out.println("Los archivos comparados son diferentes");
            }
            lee1.close();
            lee2.close();
        }
        finally
        {
          System.out.println("fin...");
        }
    }
}
Output:
Comparando Archivos...
Fin de comparacion de los archivos...

El primer archivo tiene 39 Lineas
El segundo archivo tiene 39 Lineas
Los archivos comparados son iguales
fin...

sábado, 16 de marzo de 2013

Leer un archivo de texto con FileReader

import java.io.FileReader;
import java.io.BufferedReader;

public class Datos {
    
    public static void main(String [] args) throws Exception
    {
        FileReader fr = new FileReader("alumnos.txt");
        BufferedReader br = new BufferedReader(fr);
        String s;
        
        while((s = br.readLine()) != null )
        {
            System.out.println(s);
        }
        fr.close();
    }    
}

Lectura básica de un archivo de texto (alumnos.txt)
Output:

Matricula    Alumnos Califcacion Sexo
12345 Jose Suarez                     8.9 M
23233      Joaquin Hernandez         4.6               M
56789      Felipe Reyes                 10                F
34567 Enrique Salas                 9.5               M
99392      Eduardo Sanchez         5.3                M

Procesamiento de Archivos en Java

  • Java considera a cada archivo como un flujo secuencial de bytes.
  • Los flujos que reciben y envían bytes a archivos se conocen como flujos basados en Bytes, almacenan datos en formato Binario. (Archivos Binarios).
  • Los flujos que reciben y envían caracteres de los archivos se conocen como flujos basados en caracteres, almacenan datos como una secuencia de caracteres. (archivos de texto):
Paquete java.io  <=== procesamiento de archivos

Stream de Bytes(InputStream y OutputStream)
  • Diseñados para operar a nivel de byte.
  • Hay dispositivos que solo pueden trabajar a este nivel.
Stream de caracteres (Reader y Writer)
  • Diseñados para optimizar las operaciones con cadenas de caracteres
  • Soporta codificaciones UNICODE-16
  • Cualquier archivo de texto puede ser directamente accedido a través de este tipo de Stream.
Clases:
FileInputStream:     Para la entrada basada en bytes desde un archivo.
FileOutputStream:  Para la salida basada en bytes hacia un archivo.
FileReader:             Para la entrada basada en caracteres desde un archivo.
FileWriter:              Para la salida basada en caracteres hacia un archivo.
BufferedReader:    Para leer archivos de texto plano.
PrintWriter:            Se utiliza para escribir en ficheros de texto.


Entradas populares