Ich habe versucht, Dateien mit StreamApi zu lesen und zu schreiben, das in Java8 hinzugefügt wurde. Bitte beachten Sie, dass ich in ca. 30 Minuten nachforsche und schreibe, um dies zu überprüfen (lacht).
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;
/**
*Beispiel streamen<br />
*Der Zeichencode ist UTF-Auf 8 einstellen(Shift_In jis nicht sichtbar)
*/
public class SampleStream {
/**Pfad lesen*/
private static final String INPUT_PATH = "C:\\temp\\in.txt";
/**Ausgabepfad*/
private static final String OUTPUT_PATH = "C:\\temp\\out.txt";
public static void main(String[] args) throws Exception {
//Holen Sie sich FileSystem
FileSystem fs = FileSystems.getDefault();
//Legen Sie den Dateipfad fest
Path path = fs.getPath(INPUT_PATH);
//Stellen Sie den Pfad für die Ausgabe ein
Path out = fs.getPath(OUTPUT_PATH);
//Lesen von Teil 1
// Files.Lesen Sie mit Zeilen
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");
}
//Lesen von Teil 2
// Files.Lesen Sie mit 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));
//Packen Sie die extrahierten Daten in eine Liste und geben Sie sie als Text aus
Files.write(out, output, StandardCharsets.UTF_8, StandardOpenOption.APPEND);
//Geben Sie die Ausgabedaten mit der erweiterten for-Anweisung aus und überprüfen Sie sie
for (String put : output) {
System.out.println(put);
}
}
}
Es scheint, dass der Zeichencode nur UTF-8 unterstützt und beim Versuch, mit Shift_Jis zu lesen, eine Ausnahme ausgelöst wird.
Ich möchte die Methode zum Lesen der Verzeichnishierarchie zu einem späteren Zeitpunkt veröffentlichen.
Recommended Posts