Foi solicitado que seja desenvolvido em Java uma aplicação que dado um
arquivo (video.avi, por exemplo) divida-o em arquivos menores
(video.001, video.002, …).
Deve ser entrada o nome do arquivo e o tamanho máximo dos arquivos
menores.
Exemplo
Arquivo: video.avi
Tam. Máx: 100.000
, onde o video.avi teria o tamanho de 100.000 e seria dividido em 10 ou mais
arquivos menores .
Alguem pode me ajudar e informar com que API do java eu posso fazer isso ?
Se alguem tem um exemplo aí … Agradeço a quem ajudar !!!
Basicamente vais ter uma classe de leitura que tenha parametrizado a quantidade de bytes para cada arquivo e a medida que este valor for alcançado deves iniciar a escrita em outro arquivo. Seria algo do tipo:
privatevoidperform(final String path, final String outputName, final int fileSize) throws Exception {finalFileInputStreamfis=newFileInputStream(path);finalbyte[] buffer = new byte[fileSize];intcounter=1;Stringname;while(fis.read(buffer) != -1) {name=outputName+(counter++);System.out.print("Writing file: " + name);newFileOutputStream(name).write(buffer);System.out.println(" Done!");}}//...
perform("/temp/damnit.avi", "file-part.", 10485760);//...
Espero que te ajude, T+
E
eclipse_lunarPJ
Vc poderia me dar mas alguma força !?
Quanto a cópia do arquivo tudo bem …so não tneho idéia de como iria fazer para criar os arquivos cada vez que ele alcansace a quantidade de bytes desejado …
Agradeço
I
iktuzPJ
Não sei se entendi a tua dúvida, mas acho que o programa já faz isso. A declaração do array de bytes “buffer” é a porção do arquivo lido a cada iteração. Ali no exemplo da chamada coloquei 10M, ou seja, a cada 10M lidos ele vai criar uma nova parte do arquivo maior. T+