Algoritmo de intercalação de arquivos por Chave ordenada

Oi pessoal,

Eu fiz um algoritmo em Java capaz de fazer intercalação entre dois arquivos. Intercalar é misturar de maneira ordernada por uma chave. A classe ficou muito boa! Por enquanto só tem um método. Faz de uma maneira eficiente e economiza memória. Contudo, é importante que os dois arquivos de entrada estejam ordenados pela chave.

O método que faz isso é o
public static java.io.File merge(int charsBegin, int charsEnd,
java.io.File X, java.io.File Y, String path)
throws java.io.IOException

charsBegin - é o indíce onde começa a chave no arquivo.
charsEnd - é o indíce onde termina a chave no arquivo.
java.io.File X - é o objeto do arquivo 1,
java.io.File Y - é o objeto do arquivo 2,
String path - é o caminho aonde será criado o arquivo de saída. Lembre-se que é necessário por o nome do arquivo de saída no path. Veja no código como testei.

O algoritmo com um método main de teste está neste link http://paste.la/459 .
O método "merge" resolve qualquer caso de dois arquivos ordenados. Caso uma exceção de IO ocorra (IOException), ele a trata de maneira apropriada. Essa parte ficou muito legal.

O tratamento depende da fonte da exceção.
- Fonte é em um arquivo de entrada. O respectivo buffer é fechado e a escrita continua para o outro arquivo.
- Fonte é o arquivo de saída. Todos os buffers são fechados, vejam a nota, e a exceção de IO é propagada pelo método chamador para que este a trate da maneira que quiser.

Nota: Os buffers de leitura são fechados para que a Máquina Virtual Java(JVM) não se sobrecarregue com esse serviço. O buffer de escrita é fechado para que ocorra o flush. Em um programa em Java, C++ toda escrita que o programa faz fica na memória do computador até que o ponteiro do arquivo seja fechado ou seja dado flush. Assim, o que está na memória é limpo e escrito no H.D.

Nota: Depois vou criar o método kvias. Este fará intercalação entre N arquivos.

Nenhum comentário:

Ratings:

Avaliação deste artigo

Copyright © Programming @ home