Alguém poderia me ajudar a usar esse método de busca binaria para buscar palavras em um arquivo txt, estou pensando em usar uma lista encadeada?

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<String> 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;
}

}