Serializo o arquivo normalmente;
public void serializar(String local, Object obj) throws Exception {
FileOutputStream outFile = new FileOutputStream(local);
try (ObjectOutputStream s = new ObjectOutputStream(outFile)) {
s.writeObject(obj);
s.flush();
}
}
Leio e retorno um array de bytes do arquivo;
public byte[] getBytes(File file) {
int len = (int) file.length();
byte[] sendBuf = new byte[len];
FileInputStream inFile = null;
try {
inFile = new FileInputStream(file);
inFile.read(sendBuf, 0, len);
} catch (FileNotFoundException fnfex) {
JOptionPane.showMessageDialog(null, fnfex);
} catch (IOException ioex) {
JOptionPane.showMessageDialog(null, ioex);
}
return sendBuf;
}
Criptografo este array que retorna um array criptografado;
criptografo e gravo em cima do arquivo o array de bytes CRIPTOGRAFADOS
try {
FileOutputStream in = new FileOutputStream(local);
try {
in.write(encrypt); //ENCRIPT É O ARRAY
in.flush();
JOptionPane.showMessageDialog(rootPane, "Salvo com Sucesso");
} catch (IOException ex) {
Logger.getLogger(GUIMenuPrincipal.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(GUIMenuPrincipal.class.getName()).log(Level.SEVERE, null, ex);
}
porém os dados não estão sendo gravados pela segunda vez, fiz o teste usando 2 arquivos sendo que o segundo éra somente para armazenar a criptografia e deu certo; creio que o problema está nas leituras e escritas, alguém ajuda? ( OBS: Não estoura Exception nenhuma)
Descobri que ele está criando um novo arquivo de mesmo nome porém sem a minha extensão ali na ultima gravação, alguemmm?
— Leonardo Daros 21 de abr de 2015