Boa tarde a todos!
Me chamo João e estou com um problema para desserializar um objeto.
Tenho um programa que grava normalmente os objetos que estão em uma ArrayList (de acordo com a quantidade de elementos inseridos) mas quando eu abro o programa para ler os arquivos ele não sabe até onde parar, ou lê certa quantidade definida por mim ou lê diversos elementos (mesmo não tendo). [b]Preciso que ele leia e jogue no array somente aquilo que possuir.[/b] Nada a menos nada a mais. Como fazer esta “parada”?
Sim, isso é o que estou fazendo. O que preciso é jogar tudo que tem no arquivo serializado para um objeto que vai para ArrayList. Por isso preciso de um ponto de parada para não colocar NULL no arrayList. Qual seria? Você sabe?
joão, acho que o “ponto de parada” que vc se refere é a quantidade de arquivos existentes no diretório “user.dir”.
List listaArquivos = listarArquivosDiretorio(pathDoDiretorioUserDir)
aqui vc recupera a quantidade de arquivos
int numArquivos = listaArquivos.size();
esse método lista todos os arquivos do diretório.
obs: prefiro trabalhar com List do que array
[code] /**
* Lista todos os arquivos do diretório informado
* Retorna um java.util.List
*
* @param diretorio
* @return
*/
public static List listarArquivosDiretorio(File diretorio) {
lista = new ArrayList<File>();
if ((diretorio.exists()) && (diretorio.isDirectory())) {
File[] arquivos = diretorio.listFiles();
if (arquivos != null) {
for (int i = 0; i < arquivos.length; i++) {
lista.add(arquivos[i]);
}
}
}
return lista;
}[/code]
esse método lê o conteúdo do arquivo
[code] /**
* Lê o conteúdo serializado de um arquivo.
*
* @param nomeArquivoComDiretorio
*/
public static Object lerObjetoSerializado(String nomeArquivoComDiretorio) {
Prezados,
Quebrei a cabeça um pouco aqui e tive a idéia de colocar um variável booleana temProximo dizendo que há um próximo elemento ou não, sendo que toda vez que dou um new no objeto o mesmo é instanciado com FALSE.
MUITO obrigado pela ajuda de vocês e vou tentar utilizar o código que me passou acima.