Bonjour à tous,
Dans un exercice on demande d'écrire une classe dont la méthode principale doit lire ligne par ligne le texte saisi sur l'entrée standard et l'écrire dans le fichier dont le nom est fourni en utilisant l'encodage préconnisé.
Par exemple, l'exécution suivante (le ^D à la fin représente la séquence Control-D pour fermer le flot d'entrée)
doit produire un fichier de nom ascii.txt contenant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5% java package.maClasse ascii ascii.txt bla bla Voila un petit texte ^D
Voici ce que j'ai écrit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 bla bla Voila un petit texte
ça marche mais pas correctement puisque si j'espace les mots que je tape sur le standard je n'arrive pas à les récupérer en une seule ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 public static void main(String[] args) throws IOException { Path path = FileSystems.getDefault().getPath(args[1]); List<String> arrayLinesSource = new ArrayList<String>(); for(int i = 2; i < args.length;i++){ arrayLinesSource.add(args[i]); } Files.write(path, arrayLinesSource, Charset.forName(args[0])); List<String> newArrayLinesSource = Files.readAllLines(path); for(int i = 0; i < newArrayLinesSource.size();i++){ System.out.println(newArrayLinesSource.get(i)); }
par exemple si je tape "bla bla Voila un petit texte" j'ai ceci : "bla" sur une ligne; "bla" sur une autre ligne; "Voilà" sur une autre ainsi de suite jusqu'à la fin de la saisie or je voudrais avoir "bla bla" sur une ligne et "Voila un petit texte" sur une autre ligne.Je comprends que le dysfonctionnement vienne de la première boucle mais je vois pas comment faire autrement donc si quelqu'un a une idée merci de m'orienter.
Je suis sur Windows.Je sais pas si cela peut être la cause puisque comme vous pouvez le constater la commande d'exécution fourni dans l'exemple est celle de Linux.Si tel est le cas alors comment je peut réaliser cela sous Windows?
Merci d'avance.
Partager