Páginas

Crear un fichero de texto en Java

Crear un fichero de texto en Java con caracteres aleatorios.

Programa Java para crear un fichero de texto que contenga caracteres obtenidos de forma aleatoria. Los caracteres a incluir en el fichero serán las letras de la A a la Z (mayúsculas y minúsculas incluida la ñ) y espacios en blanco.  El número total de caracteres a escribir se pide por teclado.

Por ejemplo, si el número de caracteres a escribir en el fichero es 30 el contenido del fichero creado podría ser este:

kUIdzzMVjnRÑhyUPDANgIXmnb Pkhl                                                                                         

El fichero se llamará "caracteres.txt". Se debe crear en la carpeta "ficheros" en la unidad C:

Solución:
Para crear el fichero de texto utilizaremos la clase PrintWriter:

PrintWriter salida = new PrintWriter("c:/ficheros/caracteres.txt")                                                     

Utilizaremos la clase Random para obtener números de forma aleatoria. Obtendremos números entre 0 y 255 que es el rango de caracteres de la tabla ASCII. Una vez obtenido el número comprobaremos si corresponde a una letra mayúscula o minúscula o a un espacio en blanco o a la letra ñ. Si es así se escribe en el fichero de texto.

Código del programa Java para crear un fichero y escribir caracteres aleatorios:
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Random;
import java.util.Scanner;

public class CrearArchivoCaracteresAleatorios {

    public static void main(String[] args) {

        Random rnd = new Random();
        Scanner sc = new Scanner(System.in);
        int cont = 0, n, cantidad;

        do{
            System.out.println("Introduce número de caracteres: ");
            cantidad = sc.nextInt();
        }while(cantidad < 1);

        try (PrintWriter salida = new PrintWriter("c:/ficheros/caracteres.txt")) {

            while (cont < cantidad) {

                n = rnd.nextInt(255); //se obtiene un número

                //si el número corresponde a una letra o a un espacio se escribe en el fichero                         
                if ((Character.toUpperCase((char) n) >= 'A'
                        && Character.toUpperCase((char) n) <= 'Z')
                        || ((char) n == ' ')
                        || ((char) n == 'ñ')
                        || ((char) n == 'Ñ')) {
                    salida.print((char) n);
                    cont++;
                }
            }

        } catch (FileNotFoundException e) {
            System.out.println(e.getMessage());
        }
    }
}

No hay comentarios:

Publicar un comentario