¿Es posible establecer un byte específico en una vuelta a RandomAccessFile nula?

StackOverflow https://stackoverflow.com/questions/4406691

  •  25-09-2019
  •  | 
  •  

Pregunta

Origianlly, cuando creé el RandomAccessFile, me he saltado sobre algunos bytes por lo que aquellos quedado como nula, pero ahora tengo que borrar algunos de los bytes que escribí. En este momento, lo que estoy haciendo es sobrescribir la ubicación con un espacio, pero hay una manera de establecer de nuevo a vaciar?

EDIT:. Debido a que debe contener un valor, me gustaría saber cómo configurarlo de nuevo al valor original que se le asigna por defecto cuando se omite

¿Fue útil?

Solución

Un archivo no puede contener un byte de "vacío". Cada byte en el archivo debe tener un valor entre 0 y 255.

Si usted quiere "borrar" todos los bytes después de un cierto punto, usted podría utilizar RandomAccessFile.setLength la que trunca el archivo.


En cuanto a su comentario: Si desea establecer algunos bytes de nuevo a su valor original, le sugiero que encapsular un RandomAccessFile en su propia clase con un mapa del índice de valor de byte original, que se actualiza en cada llamada a write. Esta subclase entonces podría proporcionar una restore(int i) método que restaura el valor del byte en el índice i buscando el valor original en el mapa.

Otros consejos

Es muy claro lo que estás tratando de hacer, pero no se puede "eliminar" los bytes desde el principio o en medio de un archivo. Puede general truncado un archivo, pero no se puede quitar los residuos de la zona central -. Que normalmente crea un nuevo archivo, sólo la copia de los datos que desea, y luego, posiblemente, cambiar el nombre de los archivos de forma apropiada

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top