Serializaçao

6 respostas
andrejusti

OI gostaria de saber como leio um arquivo de imagem num diretorio serializo e salvo ele em outro diretorio.

6 Respostas

ViniGodoy

Você quer mudar a codificação do arquivo?
Dê uma olhada na classe ImageIO e nos métodos write e read.

Ou só quer copiar o arquivo de um lugar para outro?
Nesse caso, use o FileChannel para copiar o arquivo.

public static void copyFile(File source, File destination) throws IOException {
   if (destination.exists()) {
      destination.delete();
   }

   FileChannel sourceChannel = new FileInputStream(source).getChannel();
   FileChannel destinationChannel = new FileOutputStream(destination).getChannel();
   sourceChannel.transferTo(0, sourceChannel.size(), destinationChannel);
   sourceChannel.close();
   destinationChannel.close();
}

Se não é nada disso, defina o que você quer dizer com "serializar".

andrejusti

,

andrejusti

Okk
typo eu fiz um exemplo com objeto
mais com imagem nao consegui intender
da uma olhada

public class TesteObjeto {

    public static void main(String[] args) {
        File arquivo = new File("C:/Documents and Settings/André Justi/Desktop/tester", "exemplo.aluno");
        if (arquivo.exists()) {
            try {
                FileInputStream fis = new FileInputStream(arquivo);
                ObjectInputStream ois = new ObjectInputStream(fis);
                Aluno aluno = (Aluno) ois.readObject();
                System.out.println("Nome.........:   " + aluno.getNome());
                System.out.println("Email........:   " + aluno.getEmail());
                System.out.println("Turma........:   " + aluno.getTurma());
                System.out.println("Mensalidade..:   " + aluno.getMensalidade());
                System.out.println("Desconto.....:   " + aluno.getDesconto());
            } catch (Exception e) {
                e.printStackTrace();
            }
        } else {
            System.out.println("Não existe arquivo de aluno!");
        }
        Random ranron = new Random();
        Aluno aluno = new Aluno();
        aluno.setEmail("[email removido]");
        aluno.setNome("Aluno ");
        aluno.setTurma("2008-1");
        aluno.setMensalidade(ranron.nextFloat() * 100);
        aluno.setDesconto(aluno.getMensalidade() * 0.12f);
        try {

            FileOutputStream fos = new FileOutputStream(arquivo);
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeObject(aluno);
            oos.flush();
            oos.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

aii to vendo c o arquiivo existe c nao ele mostra a mensagem que nao existe e cria o arquivo
no meu cado quero pegar um imagem e mandar ela pra outra pasta
com ImageInputStream de preferencia

ViniGodoy

Se seu problema é só copiar a imagem, use o fileCopy que postei acima. Ele não vai mudar nem um byte sequer do arquivo. Como o arquivo já representa a imagem serializada, você não precisa decodificar a imagem no processo de cópia.

Se você realmente quiser ler a imagem, entender o seu conteúdo, para só então fazer a cópia, trocando ou não o seu formato, aí sim, use os métodos read e write da classe ImageIO.

Esqueça o ImageInputStream.

andrejusti

sim sim meu caso é o seguinte…
to fazendo um site tenho que pegar a imagem la na hora que eu pega ja mostrar qual é a imagem.
depois salvar seu caminho no banco mais quando salvar seu caminho ja tenho que ter trocado ela pra uma pasta aonde vao ter todas as imagens

e quando pegar a imagem de novo vou ter que pegar ela ja da pasta aonde estao elas, mais axo que, ja sei como resolver

valeu ai vini
brigadao mesmo

ViniGodoy

É, o ImageIO é o caminho mesmo. =)

Criado 28 de abril de 2009
Ultima resposta 29 de abr. de 2009
Respostas 6
Participantes 2