Ver Mensaje Individual
  #4 (permalink)  
Antiguo 20/03/2009, 17:23
oscarmoal
 
Fecha de Ingreso: marzo-2008
Mensajes: 63
Antigüedad: 16 años, 2 meses
Puntos: 0
Ayuda!!!

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.