Le Tutoriel de Java StringReader
1. StringReader
La classe StringReader est utilisée pour lire une String sous forme d'un flux d'entrée de caractères (character input stream).

En règle générale, StringReader est une sous-classe de Reader. Il n'y a pas d'autres méthodes que les celles héritées de sa classe parente. Vous pouvez lire l'article à propos de Reader pour en savoir plus sur ces méthodes.
StringReader constructor
public StringReader(String s)
2. Examples
Exemple: lire un texte, lister les mots apparus dans le texte et le nombre d'occurrences de chaque mot.
- Le Tutoriel de Java StreamTokenizer
StringReaderEx2.java
package org.o7planning.stringreader.ex;
import java.io.IOException;
import java.io.Reader;
import java.io.StreamTokenizer;
import java.io.StringReader;
import java.util.HashMap;
import java.util.Map;
public class StringReaderEx2 {
public static void main(String[] args) throws IOException {
String s = "Apple Apricots Apricots Blackberries Apple";
Reader reader = new StringReader(s);
StreamTokenizer tokenizer = new StreamTokenizer(reader); // StreamTokenizer(Reader)
// <String word, int count>
Map<String, Integer> wordsMap = new HashMap<>();
// Read and count the frequency for every word.
while (tokenizer.nextToken() != StreamTokenizer.TT_EOF) {
if (tokenizer.ttype == StreamTokenizer.TT_WORD) {
int count;
if(wordsMap.containsKey(tokenizer.sval)) {
count = wordsMap.get(tokenizer.sval).intValue();
count++;
}
else {
count = 1;
}
wordsMap.put(tokenizer.sval, count);
}
}
wordsMap.forEach((word, count) -> {
System.out.println(word + " : " + count);
});
}
}
Output:
Apple : 2
Apricots : 2
Blackberries : 1
Exemple: Lire un texte avec plusieurs lignes, imprimer les lignes qui se terminent par "B" et ne commencent pas par "#" (ligne de commentaire).
StringReaderEx3.java
package org.o7planning.stringreader.ex;
import java.io.BufferedReader;
import java.io.Reader;
import java.io.StringReader;
public class StringReaderEx3 {
public static void main(String[] args) {
String students = //
"# Students:\n" //
+ "John P\n" //
+ "Sarah M\n" //
+ "# Sarah B\n" //
+ "Charles B\n" //
+ "Mary T\n" //
+ "Sophia B\n";
Reader reader = new StringReader(students);
BufferedReader br = new BufferedReader(reader);
br.lines() // return java.util.stream.Stream
.filter(s -> !s.trim().startsWith("#")) // Line not start with #
.filter(s -> s.endsWith("B")) // Line ends with B
.forEach(System.out::println);
}
}
Output:
Charles B
Sophia B
Tutoriels Java IO
- Le Tutoriel de Java CharArrayWriter
- Le Tutoriel de Java FilterReader
- Le Tutoriel de Java FilterWriter
- Le Tutoriel de Java PrintStream
- Le Tutoriel de Java BufferedReader
- Le Tutoriel de Java BufferedWriter
- Le Tutoriel de Java StringReader
- Le Tutoriel de Java StringWriter
- Le Tutoriel de Java PipedReader
- Le Tutoriel de Java LineNumberReader
- Le Tutoriel de Java PushbackReader
- Le Tutoriel de Java PrintWriter
- Tutoriel sur les flux binaires Java IO
- Le Tutoriel de Java IO Character Streams
- Le Tutoriel de Java BufferedOutputStream
- Le Tutoriel de Java ByteArrayOutputStream
- Le Tutoriel de Java DataOutputStream
- Le Tutoriel de Java PipedInputStream
- Le Tutoriel de Java OutputStream
- Le Tutoriel de Java ObjectOutputStream
- Le Tutoriel de Java PushbackInputStream
- Le Tutoriel de Java SequenceInputStream
- Le Tutoriel de Java BufferedInputStream
- Le Tutoriel de Java Reader
- Le Tutoriel de Java Writer
- Le Tutoriel de Java FileReader
- Le Tutoriel de Java FileWriter
- Le Tutoriel de Java CharArrayReader
- Le Tutoriel de Java ByteArrayInputStream
- Le Tutoriel de Java DataInputStream
- Le Tutoriel de Java ObjectInputStream
- Le Tutoriel de Java InputStreamReader
- Le Tutoriel de Java OutputStreamWriter
- Le Tutoriel de Java InputStream
- Le Tutoriel de Java FileInputStream
Show More