Archivo corrupto de Java

Doblat

Buenas gente, he empezado primero de DAM semipresencial y en el primer examen presencial me ocurrió esto al guardar el archivo examen.java se quedo "corrupto" nunca me había pasado guardando archivos durante el curso así que tampoco lo revise antes de subirlo. La cosa es que no me ha contado nada, hablándolo con una amiga programadora y en su empresa no saben por que ha pasado y varios profesores tampoco.

Me gustaría saber si se puede revertir y recuperar el archivo y si no saber por que ha ocurrido para no repetirlo en futuras ocasiones.

Tengo el archivo corrupto para hacer pruebas por si se os ocurre algo.

Aquí dos ejemplos que les ocurre lo mismo pero sin solución. He probado a cambiar desde vstudio code a todas las codificaciones y no sale el código original en ninguna.

https://github.com/microsoft/vscode/issues/178146

spoiler

https://stackoverflow.com/questions/73353024/vscode-the-file-is-not-displayed-in-the-editor-because-it-is-either-binary-or-us

Un saludo!

sefivy

puede que lo que hayas guardado como .java sea un .class o un .jar , puedes probar en powershell con Format-Hex y si te aparece la cadena CAFEBABE es que es un binario .class , también puedes probar algún descompilador como JD-GUI y salir de dudas.

1 1 respuesta
Doblat

Hola #2 gracias por la respuesta! Estoy empezando a programar así que la primera opción se me escapa un poco como hacerla. Seria asi?

El binario .class no se podría abrir de algún modo o cambiarlo a extensión JAVA? he probado a cambiarle la extensión a .class y abrirlo pero no funciona, por si acaso.

Me he descargado JD-GUI y al abrirlo sale igual que en visual studio code.

2 respuestas
sefivy

#3 si, fíjate en la primera linea , ahí debería salirte CA FE BA BE , normalmente los class comienzan con esos bytes, por lo que no lo es, y si en jd-gui te sigue saliendo igual probablemente es que tampoco es un compilado y que se ha corrompido en la transferencia. siento decirte que no lo vas a poder recuperar

1 respuesta
Doblat

#4 entiendo, que es en el proceso de guardar el archivo, luego hice otro examen de PHP y se guardo sin problemas, por lo que entiendo que es algo del código del archivo de .java que acabo así, o puede pasar aleatoriamente?

1 respuesta
sefivy

#5 al guardar es raro que ocurra algo así , pero no imposible, personalmente nunca me ha pasado, sin embargo al transferir el archivo si.

1
desu

#3 50 4B 03 04 es un "zip" de algun tipo:
https://en.wikipedia.org/wiki/List_of_file_signatures

zip
aar
apk
docx
epub
ipa
jar
kmz
maff
msix
odp
ods
odt
pk3
pk4
pptx
usdz
vsdx
xlsx
xpi

prueba a descomprimirlo, prueba a hacerle un file examen.java o similar para analizar que es.

hiciste el examen escribiendo en un word o similar? al guardar quizas juardaste un archivo .odt o similar como .java.

*segun chatgpt, no estoy seguro pero le he preguntado por mas info: el MIME TYPE application/vnd.oasis.open que te sale hace relacion a libreooffice, openoffice.

yo buscaria por ahi, tiene toda la pinta de que sea esto ultimo.

1 respuesta
JuAn4k4

Es un odt de open office como dice desu.

application/vnd.oasis.opendocument.text

Cámbiale la extensión a odt e intenta editarlo con office o lo que te pueda abrir eso.
Al final creo que es un .rar con XML dentro si mal no recuerdo.

1 1 respuesta
Doblat

#7 #8 acabo de cambiar la extension a RAR y me ha creado estas carpetas y archivos, que si se abren pero son codigo html y nada del codigo que cree yo en JAVA, como es posible que se creara todo esto con un .java que tenia poquisimo de codigo que nada tenia que ver?

Codigo de unos de los archivos xml que habia dentro.

spoiler
2 respuestas
maxmalkav

#9 los archivos de OpenOffice/LibreOffice son poco más que un archivo zip tuneado.

Si lo renombras a .odt seguramente lo podrás abrir con LibreOffice

1 respuesta
Doblat

#10 Lo probé también a cambiar a odt y salía en blanco en Writer.. por eso cambie a rar/zip y me salió todo eso.

1 respuesta
JuAn4k4

#11 El fichero es un odt, si está en blanco lo guardarías en blanco, mira a ver si se guarda la historia o algo. Y sino pues mejor volver a hacerlo

1 respuesta
Konishi

#9 a parte de lo que te han dicho, asumiendo que fue un .odt o .docx, el texto en sí debería estar en el fichero content.xml, prueba a ver si hay algo ahí que se parezca.

1 respuesta
Doblat

#13 Lo he comprobado y tiene esto:

spoiler

Nada que ver con mi código, que era 1 menú con 3 opciones y salida. Y cada opción era una función: Hacer una figura, una de STRINGS y una recursiva que no llegue a realizar.

Parece que cuando se crea un programa en una IDE se genera toda esa documentación para que podamos visualizarlo en el programa en este caso Visual Studio CODE, es lo único que se me ocurre.

#12 cree un examen.java y lo guarde así tal cual. Parece que al guardar ya se corrompió. Ya empiezo a desistir en recuperarlo pero me gustaría entender por que ocurrió para que no vuelva a pasar.

Usuarios habituales

  • Doblat
  • Konishi
  • JuAn4k4
  • maxmalkav
  • desu
  • sefivy