java 文件流读取文本
我已经使用最新的Java8转换了一个旧的实用程序类。 我经常使用它来打印清单文件的内容,以检查任何神秘的jar文件的版本等。只需运行“ java ztools.PrintJar /path/to/my.jar”即可查看输出。 在新代码中,您将看到我如何使用Java 8流处理从Enumeration列表中过滤所需的内容,然后获得可选结果(如果有)。 然后,BufferedReader现在带有“ lines()”方法,该方法也可以进行流传输。 看到Java 8的运行真是太酷了!
package ztools;import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Optional;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;/*** Print text based resource file inside a jar file. (eg: META-INF/MANIFEST.MF)* @author Zemian Deng*/
public class PrintJar {public static void main(String[] args) throws Exception {// Search given name in a jarJarFile jarFile = new JarFile(args[0]);final String searchName = (args.length >= 2) ? args[1] : "META-INF/MANIFEST.MF";Optional<JarEntry> searchResult = jarFile.stream().filter(e -> e.getName().equals(searchName)).findFirst();if (!searchResult.isPresent())throw new RuntimeException(searchName + " not found!");// Print the JarEntryJarEntry entry = searchResult.get();try (InputStream instream = jarFile.getInputStream(entry)) {BufferedReader reader = new BufferedReader(new InputStreamReader(instream));reader.lines().forEach(line -> System.out.println(line));}}
}
翻译自: https://www.javacodegeeks.com/2014/04/how-to-process-stream-and-read-text-file-in-java-8.html
java 文件流读取文本