Juntando Arquivo

5 respostas
edpittol

Estou tentando juntar arquivos que quebrei em partes. Preciso que o programa descubra em quantas partes o arquivo está quebrado. Os arquivos partidos são nomeados assim: teste_parte_(numero da parte).part, por exemplo: teste_parte_001.part, teste_parte_010.part. Até agora consegui fazer este codigo, porém ele está errado, não sei como estanciar objetos da classe File.

import java.io.*;

public class JuntaArquivo {
	public static void main(String[] args) throws Exception {
		String base = "teste_parte_";
		int contArq = 0;
		
		File f = null;
		FileOutputStream out = new FileOutputStream("teste2.exe");	
		FileInputStream in = null;
		
		boolean done = false;
		while(!done) {
			if(contArq < 10) f = new File(base + "00" + contArq +  ".part");
			else if(contArq < 100) f = new File(base + "0" + contArq +  ".part");
			else f = new File(base + contArq +  ".part");
			if(f.exists()) contArq++;
			else done = true;
		}
		
		int contArq2 = 0;
		int c = 0;
		boolean estaFechado = true;
		while(contArq > contArq2) {
			if(estaFechado) {
				if(contArq2 < 10) in = new FileInputStream(base + "00" + contArq2 +  ".part");
				else if(contArq2 < 100) in = new FileInputStream(base + "0" + contArq2 +  ".part");
				else in = new FileInputStream(base + contArq2 +  ".part");
				estaFechado = false;
			}
			c = in.read();
			if(c == -1) {
				contArq2++;
				in.close();
				estaFechado = true;
			}
			else out.write(c);
		}
		if(c != -1) in.close();
		out.close();
	}
}

Quem puder me ajudar ficarei grato.

5 Respostas

fiaux

Não entendi, qual o problema? Poderia explicar melhor? Sobre File: http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html

edpittol

Estou querendo juntar arquivos particionados. Porém quero q o programa descubra quantos arquivos contem para ser hjuntados, e não eu especificar. Tem um método booleano na classe File chamado d exist(). Entao pensei em criar um laço enquanto existe um arquivo ia incrementando um contador d arquivos. Porém não sei como instanciar um objeto File. O que devo colocar como parametro. Sobre a biblioteca tenho ela no meu PC ja dei uma olhada na classe File, mas continuei na mesma.

fec

Acho que é isso que você quer:
-Instanciar um File:

File f = new File("teuFile.txt"); f.createNewFile();

edpittol

Mas o arquivo não é de texto e não quero criar arquivo. Quero contar quantos arquivos particionados tem dentro do diretório.

fec

Humm…você pode usar o método list() da classe File que lista todos os arquivos e diretórios(Array de String).

Daí tu percorrer esse array e contabiliza o que tu quer…
Espero que ajude!

Criado 28 de agosto de 2007
Ultima resposta 28 de ago. de 2007
Respostas 5
Participantes 3