¿Cómo crear un archivo binario de un tamaño específico?

¿Cómo puedo crear un archivo binario de 250 KB y otro de 1 MB usando Java? ¿Es posible?

preguntado el 11 de junio de 12 a las 19:06

Abre una secuencia para escribir en un archivo y escribe esa cantidad específica de datos.... Sí, es posible. -

Escriba 256,000 1,048,576 bytes en un archivo y XNUMX XNUMX XNUMX bytes en otro. -

Entonces, ¿un archivo de 250 KB tiene en realidad 256,000 XNUMX bytes? gracias por la ayuda -

Para la memoria, 1 MB suele ser 1024 * 1024 bytes, pero para el espacio en disco se suele utilizar 1,000,000 8 XNUMX bytes. Cuando tienes GB esto puede hacer una diferencia del XNUMX%. -

3 Respuestas

 new RandomAccessFile("file.file", "rw").setLength(1048576);

Respondido el 11 de junio de 12 a las 19:06

¿No tienes que cerrar ese archivo? - chao

Para ser correcto, sí. Pero lo anterior parece ser suficiente para crear un archivo, al menos en mi sistema. Para garantizar esto, use "rws" como argumento de modo: Abierto para lectura y escritura, como con "rw", y también requiere que cada actualización del contenido o metadatos del archivo se escriba sincrónicamente en el dispositivo de almacenamiento subyacente. - Joonas Pulakka

FileOutputStream s = new FileOutputStream("a.bin");
byte[] buf = new byte[250*1024];
s.write(buf);
s.flush();
s.close();

Respondido el 11 de junio de 12 a las 19:06

No creo que asignar una matriz completa de ese tamaño sea una forma muy eficiente de memoria para abordar ese problema. (Pero, de nuevo, no sé Java). - Ry-

El tamaño de almacenamiento dinámico predeterminado típico es de 64 a 256 MB. No lo dudes por 1 MB que se queda fuera de alcance rápidamente. Pero si lo desea, use fragmentos más pequeños o escriba byte por byte. - PedroMmm

En la JVM del servidor Java 6, el tamaño de almacenamiento dinámico predeterminado es 1/4 de la memoria principal. Si establece el tamaño de almacenamiento dinámico máximo en 1 MB, la JVM no se iniciará. - pedro laurey

     public voidwriteFile(String path, int bytes) throws Exception {
    OutputStream outputStream = null;
    File f=null;
    try {
        f = new File(path + "/tmp.txt");
        f.createNewFile();
        byte[] buf = new byte[bytes];
        outputStream = new BufferedOutputStream(new FileOutputStream(f));
        outputStream.write(buf);
        outputStream.flush();
    } catch (Exception e) {
        throw new Exception();
    } finally {
        try {
            if(f!=null){
                f.delete();
            }
            outputStream.close();
        } catch (IOException e) {
        }
    }
}

respondido 25 mar '15, 06:03

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.