2010-10-20 3 views
2

disons que j'ai un fichier texte que je suis inputing texte de ...1. Numériser l'emplacement de la ligne actuelle (par opposition à la suivante). 2. ligne de balayage X (Java Débutant)

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

Scanner inputFile = new Scanner(file); 

si je veux faire référence à la ligne suivante du texte que je ferais

inputfile.nextLine(); 
  1. Supposons que je souhaite à nouveau référencer cette même ligne de texte. Est-ce qu'il y a une méthode "currentLine()"? Que pouvais-je faire d'autre?

  2. En général, disons que je veux ouvrir le fichier et me référer à la 3ème ligne de texte ou à la 150ème ligne ou autre, comment puis-je obtenir le scanner pour lire cette ligne spécifique?

Répondre

1

Le scanner n'est utile que si vous souhaitez traiter un fichier ligne par ligne.

Vous pouvez stocker chaque ligne dans une collection pour référence ultérieure, si vous le souhaitez.

Vous pouvez également utiliser Commons IO, par exemple. pour récupérer une ligne spécifique:

List<String> lines = FileUtils.readLines(file); 
lines.get(150); 

http://commons.apache.org/io/api-1.4/org/apache/commons/io/FileUtils.html#readLines(java.io.File)

et se référer à chaque ligne de la ligne de la manière que vous suggérez. Il est difficile de suggérer autre chose tant que nous ne savons pas ce que vous essayez de faire.

1
  1. Il n'existe aucune méthode currentLine(). Vous pouvez stocker la ligne actuelle dans la variable temp String currLine = inputfile.nextLine(); ou vous pouvez créer votre propre méthode.

  2. Vous pouvez le faire de cette façon:


public static void main(String[] args) throws FileNotFoundException{ 
    Scanner inputFile = new Scanner(new File("example.txt")); 
    System.out.println(getLine(150, inputFile)); 
} 
public static String getLine(int line, Scanner input){ 
    String result = ""; 
    int lineNr = 1; 
    while(input.hasNextLine() && lineNr <= line){ 
    result = input.nextLine(); 
    lineNr++; 
    } 
    return result; 
} 
Questions connexes