Alguém poderia me ajudar a usar esse método de busca binaria para fazer a busca de palavras em um arquivo txt. A lista encadeada seria uma boa opção?

package Agora;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Atividade {

public static int buscaBinaria(String[] vetor, String buscar) {

int contador = 0;
boolean achou = false;
int meio;
int inicio = 0;
int fim = vetor.length - 1;
while (inicio <= fim) {
	meio = (inicio + fim) / 2;
	contador++;
	if (vetor[meio].equals(buscar))
		achou = true;
	if (vetor[meio].compareTo(buscar) < 0)
		fim = meio - 1;
	else
		inicio = meio + 1;

}
System.out.println("Quantidade de testes: " + contador);
if (achou == true) {
	System.out.println("Achou");
} else {
	System.out.println("Não achou");

}
return fim;

}

public ArrayList carregaDados(String nomeArquivo) throws IOException {

ArrayList<String> locais = new ArrayList<>();

BufferedReader reader = new BufferedReader(
		(new InputStreamReader(new FileInputStream(new File(nomeArquivo)), "Cp1252")));

String line = reader.readLine();

while (line != null) {

	locais.add(line);

	line = reader.readLine();
}

reader.close();

return locais;

}
}