Encontrar un numero dentro de un archivo

Iniciado por Sebasmc2, 1 Mayo 2014, 18:30 PM

0 Miembros y 1 Visitante están viendo este tema.

Chuidiang

#10
Tampoco estaría de más que pusieras el código que realmente tienes. Abres fichero y lo guardas en la variable "fichero", pero lo lees como variable "fixter", por lo que deduzco que ese no es tu codigo real, sino que has hecho copy-paste de trozos para ponerlo aquí, y por lo que se ve, no es fiable. Si encontramos algún error en el código que has puesto, igual no es el mismo que el código que realmente tienes.

Otro fallo que hay es que estás usando fixter.readLine() (sunponiendo que fixter sea fichero) cada poco dentro del bucle, dentro del bucle tienes


           while(texto!=null){
           
             //Comparamos la linea con el numero que le hemos indicado
               if (tamany.equals(fitxer.readLine())){
               
                 System.out.println(fitxer.readLine());

                   }
           //Leer la siguiente línea
             texto = fitxer.readLine();


No estás haciendo nada con texto que es la primera línea que lees, salvo ver que no es null. El tamañoo lo estás comparando contra una nueva linea que lees (fixter.readLine()) y si esa segunda línea que has leido es del tamaño adecuado, sacas por pantalla una tercera línea que lees de nuevas con System.out.println(fitxer.readLine(). Luego lees la cuarta con texto = fitxer.readLine(); para seguir el bucle y comparar el tamaño de la quinta....

El bucle correcto sería así


       String texto = fichero.readLine();
       
        //Repetir mientras no se llegue al final del fichero
           while(texto!=null){

           // Haz aquí cosas con texto, que es la línea que has leído, y no hagas ningún readLine().
           
           // lee siguiente linea.
             texto = fitxer.readLine();
           }


Aun así, te faltan más cosas para conseguir lo que quieres, pero vete primero arreglando esto.

Se bueno.

Sebasmc2

Muchas gracias a todos por responder, sobretodo a Chuidiang ya que con su ultimo post me ha quedado mas claro todo.
Ya me va bien, ahora voy con la otra parte. Si no me funciona volvere a preguntar  :P

Pongo el código a ver si le sirve a alguien

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package ioc.m3.biblioteca;

import java.io.*;

import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;

import ioc.m3.u5.Eac5;


/**
*
* @author Sebas
*/
public class ProvesDiccionari {
   

public static void main(String[] args) throws IOException {
           
     
     System.out.println("Introduce el tamaño de las palabras :");
            Scanner scanner = new Scanner(System.in);
            String tamany = scanner.nextLine();
           
     try{
       File f = new File("C:\\Users\\Sebas\\Documents\\NetBeansProjects\\EAC6\\import\\llistaParaules.txt");
        RandomAccessFile fitxer = new RandomAccessFile(f,"r");
       
        //Leer la primera línea, guardando en un String
         String texto = fitxer.readLine();
       
         //Repetir mientras no se llegue al final del fichero
            while(texto!=null){
             //Comparamos el numero que le indicamos con lo que hay en el fichero
                if (tamany.equals(texto)){
                    String texto1 = fitxer.readLine();
                 System.out.println(texto1);
                }
            //Leer la siguiente línea
            texto = fitxer.readLine();
            }
           
           // Close the file.
           fitxer.close();
        } catch (FileNotFoundException ex) {
            Logger.getLogger(Diccionari.class.getName()).log(Level.SEVERE, null, ex);
        }
       }