Console de fichier d'entrée Utilisateur / Ligne de commande - Java


La plupart des exemples sur le Web pour entrer un fichier en Java se réfèrent à un chemin fixe:

File file = new File("myfile.txt");

Qu'en est-il d'un fichier d'entrée utilisateur de la console? Disons que je veux que l'utilisateur entre un fichier:

System.out.println("Enter a file to read: ");

Quelles options ai-je (en utilisant le moins de code possible) pour lire dans un fichier spécifié par l'utilisateur pour le traitement. Une fois que j'ai le fichier, je peux convertir en chaîne, etc... Je pense que cela a à voir avec BufferedReader, Scanner, FileInputStream, DataInputStream, etc... Je ne sais tout simplement pas comment les utiliser conjointement pour obtenir la méthode la plus efficace.

Je suis un débutant, donc je pourrais bien manquer quelque chose de facile. Mais je joue avec cela depuis un moment maintenant en vain.

Merci d'avance.

Author: nicorellius, 2011-06-09

2 answers

Pour que l'utilisateur entre un nom de fichier, il y a plusieurs possibilités:

Comme argument de ligne de commande.

public static void main(String[] args) {
  if (0 < args.length) {
    String filename = args[0];
    File file = new File(filename);
  }
}

En demandant à l'utilisateur de le saisir:

Scanner scanner = new Scanner(System.in);
System.out.print("Enter a file name: ");
System.out.flush();
String filename = scanner.nextLine();
File file = new File(filename);
 19
Author: Roland Illig, 2011-06-09 06:17:48

Utiliser un java. io. BufferedReader

String readLine = "";
try {
      BufferedReader br = new BufferedReader(new FileReader( <the filename> ));
      while ((readLine = br.readLine()) != null) { 
        System.out.println(readLine);
      } // end while 
    } // end try
    catch (IOException e) {
      System.err.println("Error Happened: " + e);
    }

Et remplissez la boucle while avec votre traitement des données.

Cordialement, Stéphane

 1
Author: Snicolas, 2011-06-09 05:58:30