package com.qianwen.smart.core.auto.service; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.Collection; import java.util.HashSet; import java.util.Set; class ServicesFiles { private static final Charset UTF_8 = StandardCharsets.UTF_8; static Set readServiceFile(InputStream input) throws IOException { HashSet serviceClasses = new HashSet<>(); try(InputStreamReader isr = new InputStreamReader(input, UTF_8); BufferedReader r = new BufferedReader(isr)) { String line; while ((line = r.readLine()) != null) { int commentStart = line.indexOf('#'); if (commentStart >= 0) line = line.substring(0, commentStart); line = line.trim(); if (!line.isEmpty()) serviceClasses.add(line); } return serviceClasses; } } static void writeServiceFile(Collection services, OutputStream output) throws IOException { BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output, UTF_8)); for (String service : services) { writer.write(service); writer.newLine(); } writer.flush(); } }