Lecture a.txt fichier utilisant la classe Scanner en Java


Je travaille sur un programme Java qui lit un fichier texte ligne par ligne, chacun avec un nombre, prend chaque nombre le jette dans un tableau, puis essaie et utilise le tri par insertion pour trier le tableau. J'ai besoin d'aide pour obtenir le programme pour lire le fichier texte.

Je reçois les messages d'erreur suivants:

java.io.FileNotFoundException: 10_Random (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.util.Scanner.<init>(Unknown Source)
at insertionSort.main(insertionSort.java:14)

J'ai une copie de la .fichier txt dans mon" src "" bin " et le dossier principal du projet, mais il ne trouve toujours pas le fichier. Je suis à l'aide d'Eclipse par la voie.

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class insertionSort {

public static void main(String[] args) {

    File file = new File("10_Random");

    try {

        Scanner sc = new Scanner(file);

        while (sc.hasNextLine()) {
            int i = sc.nextInt();
            System.out.println(i);
        }
        sc.close();
    } 
    catch (FileNotFoundException e) {
        e.printStackTrace();
    }
 }
}
Author: Ripon Al Wasim, 2012-11-02

11 answers

, Vous devez mettre l'extension de fichier ici

File file = new File("10_Random.txt");
 49
Author: Suranga, 2012-11-01 21:29:43

Utilisez les codes suivants pour lire le fichier

import java.io.File;
import java.util.Scanner;

public class ReadFile {

    public static void main(String[] args) {

        try {
            System.out.print("Enter the file name with extension : ");

            Scanner input = new Scanner(System.in);

            File file = new File(input.nextLine());

            input = new Scanner(file);


            while (input.hasNextLine()) {
                String line = input.nextLine();
                System.out.println(line);
            }
            input.close();

        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

}

- > Cette application imprime le contenu du fichier ligne par ligne

 18
Author: Dhanushka Gayashan, 2016-12-01 11:29:10
  1. Assurez - vous que le nom du fichier est correct (majuscule appropriée, extension correspondante, etc.-comme déjà suggéré).

  2. Utiliser le Class.getResource méthode pour localiser votre fichier dans le classpath-ne vous fiez pas au répertoire courant:

    URL url = insertionSort.class.getResource("10_Random");
    
    File file = new File(url.toURI());
    
  3. Spécifiez le chemin absolu du fichier via des arguments de ligne de commande:

    File file = new File(args[0]);
    

Dans Eclipse:

  1. Choisissez "Exécuter les configurations"
  2. Allez dans l'onglet" Arguments "
  3. Mettez votre "c:/my/file/is/here/10_Random.txt.ou.quel que soit "dans la section" Arguments du programme "
 5
Author: mvmn, 2015-01-25 03:32:06

Voici quelques méthodes de travail et testées;

using Scanner

package io;

import java.io.File;
import java.util.Scanner;

public class ReadFromFileUsingScanner {
    public static void main(String[] args) throws Exception {
        File file=new File("C:\\Users\\pankaj\\Desktop\\test.java");
        Scanner sc=new Scanner(file);
        while(sc.hasNextLine()){
            System.out.println(sc.nextLine());
        }
    }
}


Voici une autre façon de lire le fichier entier (sans boucle) en utilisant la classe Scanner

package io;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ReadingEntireFileWithoutLoop {
    public static void main(String[] args) throws FileNotFoundException {
        File file=new File("C:\\Users\\pankaj\\Desktop\\test.java");
        Scanner sc=new Scanner(file);
        sc.useDelimiter("\\Z");
        System.out.println(sc.next());
    }
}

En utilisant BufferedReader

 package io;
import java.io.*;
public class ReadFromFile2 {
    public static void main(String[] args)throws Exception {
        File file=new File("C:\\Users\\pankaj\\Desktop\\test.java");
        BufferedReader br=new BufferedReader(new FileReader(file));
        String st;
        while((st=br.readLine())!=null){
            System.out.println(st);
        }
    }
}

using FileReader

package io;
import java.io.*;
public class ReadingFromFile {
    public static void main(String[] args) throws Exception {
        FileReader fr=new FileReader("C:\\Users\\pankaj\\Desktop\\test.java");
        int i;
        while((i=fr.read())!=-1){
            System.out.print((char) i);
        }
    }
}
 3
Author: pankaj, 2017-01-10 19:09:57

Personne ne semble avoir abordé le fait que vous n'entrez rien dans un tableau. Vous définissez chaque int lu sur "i", puis vous le sortez.

for (int i =0 ; sc.HasNextLine();i++)
{
    array[i] = sc.NextInt();
}

Quelque chose à cet effet continuera à définir les valeurs du tableau sur l'entier suivant lu.

Qu'une autre boucle for peut afficher les nombres dans le tableau.

for (int x=0;x< array.length ; x++)
{
    System.out.println("array[x]");
}
 2
Author: Vrezh Gulyan, 2015-09-16 13:14:07
  1. Vous devez spécifier le nom de fichier exact, y compris l'extension de fichier, par exemple 10_Random.txt.
  2. Le fichier doit être dans le même répertoire que l'exécutable si vous voulez y faire référence sans aucun chemin explicite.
  3. Pendant que nous y sommes, vous devez vérifier un int avant de lire un int. Il n'est pas sûr de vérifier avec hasNextLine(), puis attendre un int avec nextInt(). Vous devez utiliser hasNextInt() pour vérifier qu'il y a réellement un int à saisir. Comment strictement vous choisissez d'appliquer le un entier par règle de ligne est à vous, bien sûr.
 1
Author: Iskar Jarak, 2012-11-01 21:33:36

Le chemin du fichier semble être un problème ici, assurez-vous que le fichier existe dans le bon répertoire ou donnez le chemin absolu pour vous assurer que vous pointez vers un fichier correct. Veuillez enregistrer le fichier.getAbsolutePath () pour vérifier que le fichier est correct.

 1
Author: Avijit, 2015-05-26 05:17:42

Vide privé loadData () {

    Scanner scanner = null;
    try {
        scanner = new Scanner(new File(getFileName()));
        while (scanner.hasNextLine()) {
            Scanner lijnScanner = new Scanner(scanner.nextLine());

            lijnScanner.useDelimiter(";");
            String stadVan = lijnScanner.next();
            String stadNaar = lijnScanner.next();
            double km = Double.parseDouble(lijnScanner.next());

            this.voegToe(new TweeSteden(stadVan, stadNaar), km);

        }
    } catch (FileNotFoundException e) {
        throw new DbException(e.getMessage(), e);
    } finally {
        if(scanner != null){
            scanner.close();
        }
    }
}
 1
Author: Thomas Wouters, 2017-06-19 12:04:42

Le fichier que vous lisez doit avoir exactement le nom de fichier que vous spécifiez: "10_random" pas "10_random.txt " pas " 10_random.bla", il doit correspondre exactement ce que vous demandez. Vous pouvez changer un match, afin qu'elles s'alignent, mais juste être sûr qu'ils font. Il peut être utile d'afficher les extensions de fichier dans le système d'exploitation que vous utilisez.

Aussi, pour l'emplacement du fichier, il doit être situé dans le répertoire de travail (même niveau) que l'exécutable final (l' .fichier de classe) qui est le résultat de la compilation.

 0
Author: Kyle Falconer, 2012-11-01 21:31:19

Au début, vérifiez l'adresse du fichier, elle doit être à côté de votre fichier .java ou dans n'importe quelle adresse que vous définissez dans la variable d'environnement classpath. Lorsque vous vérifiez cela, essayez ci-dessous.

  1. Vous devez utiliser un nom de fichier par son extension dans le constructeur d'objet de fichier, comme exemple:

    File myFile = new File("test.txt");

  2. Mais il existe une meilleure façon de l'utiliser dans l'objet Scanner en passant l'adresse absolue du nom de fichier, comme exemple:

    Scanner sc = new Scanner(Paths.get("test.txt"));

De cette façon, vous devez importer java.nio.file.Paths ainsi.

 0
Author: Amir Maleki, 2017-06-05 06:57:31

Vous devez utiliser soit

File file = new File("bin/10_Random.txt");

Ou

File file = new File("src/10_Random.txt");

Par rapport au dossier du projet dans Eclipse.

 0
Author: Rajesh Guptan, 2017-10-13 18:07:09