Converts different character codes of Java files to the same character code at once and saves
public void writeFile() throws IOException {
Files.list(Paths.get("dir"))
.filter(p -> p.toFile().getName().endsWith(".txt"))
.forEach(p -> writeFile(p));
Files.find(Paths.get("dir")
, Integer.MAX_VALUE
, (p, a) -> p.toFile().getName().endsWith(".txt"))
.forEach(p -> writeFile(p));
}
public void writeFile(Path path) {
try {
Files.write(path
, readFile(path).stream().collect(Collectors.joining("\r")).getBytes(StandardCharsets.UTF_8));
} catch (IOException e) {
throw new IllegalStateException("write error file : " + path.toAbsolutePath(), e);
}
}
public List<String> readFile(Path path) {
for (Charset charset: Charset.availableCharsets().values()) {
try {
return Files.readAllLines(path, charset);
} catch (MalformedInputException e) {
e.printStackTrace();
continue;
} catch (IOException e) {
throw new IllegalStateException("read error file : " + path.toAbsolutePath(), e);
}
}
throw new IllegalStateException("read error file : " + path.toAbsolutePath());
}
Recommended Posts