Points de programmation
Comment est interprete une tabulation d'un texte source en String dans
java lors de la lecture?
C'est le caractère “\t
”. J'avoue ne pas trop savoir ce que ça fait en
HTML. Dans le doute je dirais que c'est un blanc normal, à répliquer
dans la sortie comme une tabulation.
Une dernière remarque concerne la capacité de stockage dans un String
de Java. Le dernier exemple de page à tester était sûrement destiné à
toucher du doigt cet te difficulté. Mais je pense que si on ne
s'occupe que des zones de texte, il y a moyen de fragmenter le travail
sans difficulté et donc de résoudre ce probleme. Qu'en pensez-vous?
Je ne comprends pas trop votre question. Mais il me semble que mettre
tout le fichier lu dans une chaîne n'est pas une bonne idée.
Les exemples d'analyseurs lexicaux donnés dans la page de
suivi devraient vous indiquer comment procéder.
nous avons besoin de précisions sur le fonctionnnement de
la fonction "system.in". Plus précisément, nous aurions besoin de
savoir comment donner des arguments à cette fonction afin qu'elle
prenne en compte le code HTML de la page en question.
Je ne comprends pas trop non plus.
System.in est un objet de la classe InputStream,
vous vous en êtes déjà servi selon
la démarche décrite sous le titre :
Lire ce qui est tapé dans
le TP sur l'analyse lexicale.
Bon en fait j'aime pas cette technique qui court-circuite les
conversions des octets du flot d'entrée en caractères Unicode.
Une démarche plus usuelle est de faire un “Reader” à partir
de l'entrée standard.
Un Reader est
essentiellement un objet équipé d'une méthode “read” pour
lire caractère par caractère.
Voici par example un petit programme simple qui fait l'écho de l'entre
standard sur la sortie standard.
import java.io.*; // La classe Reader est dans le package java.io
class Cat {
public static void main(String [] args) {
Reader entree = new InputStreamReader(System.in) ;
try {
for (;;) {// Boucle infinie, on sort par break
int c = entree.read (); // Lire un caractère
if (c == -1) // Fin de l'entrée
break;
else // Cas normal
System.out.print ((char)c);
}
entree.close();
} catch (IOException e) { // En cas de malaise
System.err.print("Malaise : ") ;
System.err.println(e.getMessage()) ;
System.exit(-1) ; // Terminer le programme sur erreur
}
}
} |
Le programme utlisé comme « java Cat < fichier1 >
fichier2 » permet de copier le contenu fichier1
dans fichier2.