Secondo me ti stai complicando inutilmente la vita... io la vedo cosė:
- ok per il BufferedReader e visto che il file č espressamente strutturato con un elemento per riga va bene anche il metodo di lettura a righe;
- l'algoritmo come lo vedo io: prendo il primo elemento del file (br.readLine()) e lo considero il mio max. Nel ciclo while leggo il resto del file, e confronto ogni nuova riga letta con il mio elemento pivot... se la riga appena letta č pių lunga del pivot, allora questa riga sarā il mio nuovo pivot, se pių corta proseguo nella lettura, se di lunghezza uguale... compareTo di String mi dirā qual č il pių grande.
Qualcosa del genere
codice:
private String compare (String max, String current) {
if (max.length() > current.length()) {
return max;
}
else {
return (max.compareTo(current) < 0 ? current : max);
}
}
public String max() {
String max = null;
try {
BufferedReader br = new BufferedReader(new FileReader(f));
max = br.readLine();
String current = "";
while ((current = br.readLine()) != null) {
max = compare(max, current);
}
}
catch (Exception e) {
e.printStackTrace();
}
return max;
}