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 jar
JarFile 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 JarEntry
JarEntry 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 文件流读取文本