Maison  >  Article  >  Comment parcourir et imprimer la ligne suivante dans Text.txt sur la console de sortie dans NetBeans ?

Comment parcourir et imprimer la ligne suivante dans Text.txt sur la console de sortie dans NetBeans ?

王林
王林avant
2024-02-22 13:40:11978parcourir

Questions et réponses Java apportées par l'éditeur php Banana, nous allons discuter aujourd'hui de la façon d'implémenter l'itération dans NetBeans et d'imprimer la ligne suivante du fichier Text.txt sur la console de sortie. Cette question implique les compétences de lecture et d'itération de fichiers, qui peuvent être facilement accomplies grâce à une implémentation raisonnable du code. Jetons un coup d'œil aux solutions spécifiques !

Contenu de la question

J'essaie de lire mes commentaires texte à partir d'un fichier texte, mais il n'arrive pas à passer à la ligne de code suivante en raison d'une exception nosuchelement. Comment puis-je résoudre ce problème?

Je m'excuse d'avance pour mon manque d'étiquette d'écriture car je suis nouveau sur ce site. Mais voici néanmoins mon code :

public class Praktikum11_4 {
    private Scanner input;
   
    public void membukaFile()
    {
        try {
            input = new Scanner(new File("favouriteplace.txt"));
        }   catch(FileNotFoundException e)
        {
            System.err.print("File yang anda cari" +
                    "Tidak ditemukkan");
            System.exit(1);
        }   catch(IllegalStateException e)
        {
            System.err.print("Error membaca File");
        }
        
    }
    
    public void membacaData()
    {
        try{
            while(input.hasNext())
            {   
                for (int i = 1 ; i <= 7 ; i++ )
                {
                    // Scan the line
                    String location = input.nextLine();
                    double rating = input.nextDouble();
                    System.out.printf(i+". " + "%s dengan rating %f\n", location, rating);
                }
            }
        }catch (NoSuchElementException e)
        {
            System.err.println("Element not found ERROR 101 ");
        }
    }
    
    public void menutupFile()
    {
        if (input != null)
        {
            input.close();
            System.out.print("File berhasil untuk ditutup");
        }
    }
    
    public static void main(String[] args)
    {
        
    }
    

}

Voici le fichier que j'essaie de parcourir et d'imprimer sur la console de sortie :

Fichier composé de données](https://i.stack.imgur.com/dj2kc.png)

Voici le résultat que j'obtiens :

umn Cinq endroits préférés des étudiants

  1. bungkushin dengan note 4.300000

Element not found error 101 file berhasil untuk ditutup

Voici donc mon résultat attendu :

Sortie attendue](https://i.stack.imgur.com/ntkv4.png)

Solution

L'exception nosuchelement se produit parce que vous appelez input.nextdouble() dans la boucle for sans vérifier si le fichier d'entrée est là. la prochaine valeur double disponible. Vous devez vérifier si la prochaine valeur double existe avant d'essayer de la lire. De plus, qu'une exception se produise ou non, l'exception doit être gérée correctement et le fichier fermé.

public void readData() {
try {
    int i = 1;
    while (input.hasNext()) {
        String location = input.nextLine();
        if (input.hasNextDouble()) {
            double rating = input.nextDouble();
            input.nextLine(); // Consume the newline character after the double
            System.out.printf("%d. %s with rating %.2f\n", i, location, rating);
            i++;
        } else {
            System.err.println("Invalid rating format for location: " + location);
            input.nextLine(); // Consume the entire line to move to the next line
        }
    }
} catch (NoSuchElementException e) {
    System.err.println("Element not found ERROR 101");
}
}

Assurez-vous d'appeler openfile() pour ouvrir le fichier avant d'appeler readdata() et d'appeler closefile() pour fermer le fichier lorsque vous avez terminé. N'oubliez pas non plus d'ajouter la méthode main pour exécuter le programme.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer