en Java, existe-t-il une façon de lire un fichier (fichier texte) de manière à lire un seul caractère à la fois, plutôt que de chaîne par chaîne. Ceci est destiné à un analyseur lexical extrêmement basique, vous pouvez donc comprendre pourquoi je voudrais une telle méthode. Merci. P>
4 Réponses :
Vous pouvez lire le fichier entier (s'il n'est pas très grand) dans la mémoire en tant que chaîne et itérale sur le caractère de chaîne par caractère p>
C'est une réponse, pensez-vous qu'il devrait contenir un code pour être une réponse!
Voici un exemple de code pour la lecture / l'écriture d'un caractère à la fois
public class CopyCharacters { public static void main(String[] args) throws IOException { FileReader inputStream = null; FileWriter outputStream = null; try { inputStream = new FileReader("xanadu.txt"); outputStream = new FileWriter("characteroutput.txt"); int c; while ((c = inputStream.read()) != -1) { outputStream.write(c); } } finally { if (inputStream != null) { inputStream.close(); } if (outputStream != null) { outputStream.close(); } } } }
Avez-vous regardé le lien? Il montre comment lire un caractère de fichier texte par caractère.
Mise à jour de la réponse au cas où le lien est cassé.
Vous pouvez utiliser le procédé de lecture à partir de la classe INPUTStreamReader qui lit un caractère à partir du flux et renvoie -1 lorsqu'il atteint la fin du flux
Il y a plusieurs solutions possibles. Généralement, vous pouvez utiliser n'importe quel lecteur code> à partir de
java.io code> pour les caractères de lecture, par exemple:
En fait, je ne comprends pas; La manière dont vous gérez l'entrée n'est pas la même que de la façon dont vous la lisez. OMO Vous devez utiliser un lecteur tamponné et traiter le caractère d'entrée par caractère, pas explicitement la lire de cette manière.