OI gostaria de saber como leio um arquivo de imagem num diretorio serializo e salvo ele em outro diretorio.
Serializaçao
6 Respostas
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".
,
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
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.
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
É, o ImageIO é o caminho mesmo. =)