Comment lire les données à partir d'un fichier texte et l'enregistrer certaines données d'un Tableau
J'ai un fichier texte dans mon ordinateur, je suis à la lecture de la forme de mon programme java, je veux construire certains critères. Voici mon Fichier de bloc-notes :
#Students
#studentId studentkey yearLevel studentName token
358314 432731243 12 Adrian Afg56
358297 432730131 12 Armstrong YUY89
358341 432737489 12 Atkins JK671
#Teachers
#teacherId teacherkey yearLevel teacherName token
358314 432731243 12 Adrian N7ACD
358297 432730131 12 Armstrong EY2C
358341 432737489 12 Atkins F4NGH
quand j'ai lu à partir de ce bloc-notes le fichier, je reçois les données exactes comme il est dans mon application
mais je veux lire seulement la colonne de jeton à l'intérieur des étudiants et de les mettre dans mon tableau nommé
studentTokens. Voici le code
public static void main(String[] args) {
ArrayList<String > studentTokens = new ArrayList<String>();
try{
//Open the file that is the first
//command line parameter
FileInputStream fstream = new FileInputStream("c:/work/data1.txt");
//Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
//Print the content on the console
System.out.println (strLine);
}
//Close the input stream
in.close();
}catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
- Si vous avez besoin d'un peu de logique (analyse syntaxique) à l'intérieur de votre boucle while...
- S'il vous plaît ne pas utiliser DataInputStream la lecture du texte. Malheureusement, de tels exemples sont copiés à nouveau et à nouveau de sorte que vous pouvez le supprimer à partir de votre exemple. vanillajava.blogspot.co.royaume-uni/2012/08/...
Vous devez vous connecter pour publier un commentaire.
Un court astuce:
Le code ci-dessus n'est pas complet. Il extrait tous les jetons (pour les étudiants et les enseignants). J'espère que vous allez réussir à le faire fonctionner seulement pour les étudiants de jetons à partir de là...
studentTokens.add(students[TOKEN_COLUMN]);
. Essayer de la changer par exemple avecSTUDENT_NAME_COLUMN
et vous verrez ce que vous obtenez. (La meilleure façon d'apprendre est d'essayer 🙂 )strLine
contient la chaîne"#Teachers"
...Au lieu de faire les choses en java.io, vous devez penser à passer à java.nio, il a de très belles API maintenant de travailler avec.
Voici un petit code qui va vous donner le résultat souhaité.
Voici la sortie de l'essai :
J'espère que ça peut aider.
Ce qui concerne.
Vous pouvez lire le fichier ligne par ligne et l'utilisation Chaîne.split("\\s+").
Prendre un coup d'oeil à la
String.split
méthode, qui vous aidera à diviser chaque ligne sur l'espace. Une fois que vous avez split, vous pouvez récupérer la valeur de la colonne de jeton. Enfin, appelezArrayList.ajouter
pour l'ajouter à votre liste.Vous êtes à la simple impression de la ligne .
Je crois qu'il y a peut être de deux façons
Depuis votre jeton élément est le cinquième élément, vous pouvez diviser la chaîne et d'utiliser le 5ème élément directement
Chaîne splitString = strLine.split("\t");
Chaîne tokenvalue = splitString[4];
Ou de maintenir en tant que fichier csv pour une manipulation plus aisée