0 votos
por (20 puntos) en Java
Buenas a todos/as, me gustaría saber como poder crear ficheros de tamaños específicos, es decir, imaginaros que tengo un jTextField donde le digo que me genere un fichero con el contenido de... números aleatorios pero de un tamaño específico (10kb, 100mb, etc)

Es urgente, espero que me podáis ayudar.

Un cordial saludo


3 Respuestas

0 votos
por (3.2k puntos)
Hola, te sugiero hacer lo siguiente.

Sea TAMDES el tamano deseado, y ALEAT un numero aleatorio.

1. Crear un archivo ARCH

2. Si tamano(ARCH) < TAMDES entonces:

   2.1. Agregar un nuevo ALEAT al ARCH

   2.2. Volver al paso 2.

3. FIN.

Espero te ayude, es lo primero que se me ocurrio.

Suerte!!


0 votos
por (3.2k puntos)
Ahora te dejo el código en JAVA.

=================================


import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.util.Random;
import java.util.Scanner;
/**
 * @author Luis Roberto Perez POTOSI - BOLIVIA
 */
public class Main {
    public static void main(String[] args){
        Scanner lector = new Scanner(System.in);
        System.out.print("Nombre de Archivo: ");
        String nombreArchivo = lector.nextLine();

        File archivo = new File(nombreArchivo);
        try{
            archivo.createNewFile();
        }catch(Exception e){
            System.out.println("Error al crear el archivo");
            System.exit(0);
        }

        System.out.print("Tamano deseado en bytes: ");
        long tamanoDeseado = lector.nextLong();

        Random aleatorio = new Random();

        try{
            BufferedWriter salida = new BufferedWriter(new FileWriter(nombreArchivo,true));
            for(long i=0; i<tamanoDeseado; i++)
                salida.write(""+aleatorio.nextInt(10));
            salida.close();
        }catch (Exception e){
            System.out.println("Ocurrio un error al agregar");
            System.exit(0);
        }
        System.out.println("Se creo "+nombreArchivo+" Tamano en Bytes: "+archivo.length());
    }
}

Ten en cuenta que debes pasar en tamaño en bytes, para hacer 1KB deberias pasar 1000, para 1MB seria 1000000, etc.


0 votos
por (3.2k puntos)
Notas:

 -  Crea el archivo en el mismo lugar donde corre tu Clase.

 -  No controla si existe otro archivo con el mismo nombre que pusiste.

 -  Cuando te pida el tamaño en bytes debes pasarle solo enteros mayores que 0.

 -  No controla excepciones de entrada (al leer el nombre y tamaño desde teclado).

 -  Esta hecho para ser un ejemplo, puede tener mas fallas.

 -  Cada que agrego un entero es como agregar 1 Byte.

Saludos y suerte con tu trabajo.

Atte: Roberto


Preguntas relacionadas

0 votos
6 respuestas
0 votos
2 respuestas
preguntado por Lili (20 puntos) Ene 28, 2016 en Java
0 votos
0 respuestas
preguntado por admin (4.4k puntos) Ene 28, 2016 en Java
0 votos
1 respuesta
0 votos
0 respuestas
preguntado por m (20 puntos) Ene 28, 2016 en Java
Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código

Categorías

...