Você sabe o tamanho.
A metade é só dividir o tamanho por 2.
Percorra o arquivo até chegar na metade e vá guardando em um arquivo. Chegou na metade, passe a guardar em outro arquivo.
Generalize isso e você conseguirá dividir o arquivo em quantas partes quiser.
[]'s
D
davidbuzatto
Fiz bem rápido... Você pode melhorar várias coisas, mas o caminho é esse.
Dá uma olhada:
importjava.io.File;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.nio.file.Files;/** * * @author David Buzatto */publicclassFoo{publicstaticvoidmain(String[]args){try{FileinFile=newFile("C:/x.txt");FileReaderfr=newFileReader(inFile);longtamanhoTotal=Files.size(inFile.toPath());intquantidade=2;longtamanhoPorArquivo=tamanhoTotal/quantidade;longtamanhoUltimoArquivo=tamanhoPorArquivo+(tamanhoTotal%quantidade);longmaximo;for(inti=0;i<quantidade;i++){if(i==quantidade-1){maximo=tamanhoUltimoArquivo;}else{maximo=tamanhoPorArquivo;}FilearquivoAtual=newFile("C:/p"+i+".txt");FileWriterfw=newFileWriter(arquivoAtual);for(intj=0;j<maximo;j++){fw.write(fr.read());}fw.close();}fr.close();}catch(IOExceptionexc){exc.printStackTrace();}}}
[]'s
W
wendelcastro
Fiz o teste e deu certo, muito obrigado pela segunda vez, o que você acha que devo melhorar no seu algoritmo para deixa-lo mais robusto? não quero que faça só me mostre o caminho, se não fica muito facil…rs…mais uma vez obrigado!
D
davidbuzatto
O caso nem é deixar mais robusto, mas deixar mais genérico.
Por exemplo, criar um método que faça o serviço, com um parâmetro para representar o arquivo de entrada, um para estipular em quantas partes se quer dividir o arquivo. Os arquivos de saída também podem ser gerados com base no diretório do arquivo de entrada definido. Essas coisas entendeu? Deixando mais genérico vc pode reaproveitar em outros projetos.