¿Cómo crear un archivo binario de un tamaño específico?
Frecuentes
Visto 5,830 veces
3 Respuestas
6
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
1
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
0
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 java file or haz tu propia pregunta.
Abre una secuencia para escribir en un archivo y escribe esa cantidad específica de datos.... Sí, es posible. - Simon Forsberg
Escriba 256,000 1,048,576 bytes en un archivo y XNUMX XNUMX XNUMX bytes en otro. - Vivin Paliath
Entonces, ¿un archivo de 250 KB tiene en realidad 256,000 XNUMX bytes? gracias por la ayuda - AndreS
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%. - Peter Lawrey