Resulta que no se trata de leer la última línea sino la penultima línea, eso lo complica todo, veran conseguí hacer la siguiente función
Código:
public static void showLines(String fileName, int startLine, int endLine) throws Exception
{
BufferedReader sarchivo = null;
sarchivo = new BufferedReader(new FileReader(fileName));
String line = null;
int cantLine = 0;
while (cantLine < startLine)
{
if (sarchivo.readLine() == null)
{
throw new IOException ("Archivo demasiado pequeño");
}
cantLine ++;
}
while (cantLine <= endLine)
{
line = sarchivo.readLine();
if (line == null)
{
return;
}
System.out.println(line);
String cadena = null;
String uno, dos, tres;
uno = line.substring(1,5);
dos = line.substring(6,10);
tres = line.substring(11,15);
cadena = "Primer dato: " + uno + " Segundo dato: " + dos + " Trecer dato: " + tres;
System.out.println(cadena);
cantLine++;
}
}
public static void main(String[] args) throws Exception
{
showLines("boka.txt", 21, 21);
}
y desde la clase main indico de que archivo y de que línea a que línea quiero leer, el problema es que mi archivo va a crecer siempre y no puedo saber especificamente que numero de línea es la que va a leer, solo sé que es la penúltima línea la que siempre debo leer, he intentado esto
Código:
public static void main(String[] args) throws Exception
{
BufferedReader sarchivo = null;
sarchivo = new BufferedReader(new FileReader("boka.txt"));
int k = 0;
String linea = "";
while ((linea = sarchivo.readLine()) != null)
{
k++;
}
System.out.println(k); //Total de líneas
int a = k - 3;
System.out.println(a);
String line = null;
int cantLine = 0;
while (cantLine < k - 2)
{
if (sarchivo.readLine() == null)
{
throw new IOException ("Archivo demasiado pequeño");
}
cantLine ++;
}
while (cantLine <= k - 1)
{
line = sarchivo.readLine();
if (line == null)
{
return;
}
System.out.println(line);
cantLine++;
}
}
pero no me funciona, siempre cae en la excepción, por favor ayudenme a poder leer la penúltima línea de mi archivo sin que importe que número de línea es.
Gracias.