J'ai essayé de lire et d'écrire des fichiers en utilisant StreamApi ajouté dans Java8. Veuillez noter que j'enquête et que j'écris dans environ 30 minutes pour vérification (rires)
SampleStream.java
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.FileSystem;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;
/**
*Échantillon de flux<br />
*Le code de caractère est UTF-Fixé à 8(Shift_Non visible dans jis)
*/
public class SampleStream {
/**Lire le chemin*/
private static final String INPUT_PATH = "C:\\temp\\in.txt";
/**Chemin de sortie*/
private static final String OUTPUT_PATH = "C:\\temp\\out.txt";
public static void main(String[] args) throws Exception {
//Obtenir FileSystem
FileSystem fs = FileSystems.getDefault();
//Définir le chemin du fichier
Path path = fs.getPath(INPUT_PATH);
//Définir le chemin de la sortie
Path out = fs.getPath(OUTPUT_PATH);
//Comment lire la partie 1
// Files.Lire en utilisant des lignes
try (Stream<String> stream = Files.lines(path, StandardCharsets.UTF_8)) {
stream.filter(s -> s.contains("link")).map(s -> s.replace("html", "form"))
.map(s -> s.replace("action", "href")).forEach(System.out::println);
} catch (IOException e) {
System.out.println("error");
}
//Comment lire la partie 2
// Files.Lire en utilisant readAllLines
List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);
List<String> output = new ArrayList<String>();
lines.stream().filter(s -> s.contains("link")).forEach(s -> output.add(s));
//Empaqueter les données extraites dans une liste et les afficher sous forme de texte
Files.write(out, output, StandardCharsets.UTF_8, StandardOpenOption.APPEND);
//Sortie des données de sortie avec l'instruction Extended for et contrôle
for (String put : output) {
System.out.println(put);
}
}
}
Il semble que le code de caractère ne supporte que UTF-8, et une exception est levée lors de la tentative de lecture avec Shift_Jis.
Je souhaite publier la méthode de lecture de la hiérarchie des répertoires à une date ultérieure.
Recommended Posts