在Java8
,我该怎么形成Stream
的String
从扫描仪读取结果?
InputStream is = A.class.getResourceAsStream("data.txt");
Scanner scanner = new Scanner(new BufferedInputStream(is), "UTF-8");
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
那就是将扫描仪变成我想使用迭代的流forEach
。
您正在处理所有错误,Scanner
不需要:
try (final InputStream is = A.class.getResourceAsStream("data.txt");
final Reader r = new InputStreamReader(is, StandardCharsets.UTF_8);
final BufferedReader br = new BufferedReader(r);
final Stream<String> lines = br.lines()) {
}
如果您确实要使用a Scanner
,implements Iterator
那么您可以这样做:
public Stream<String> streamScanner(final Scanner scanner) {
final Spliterator<String> splt = Spliterators.spliterator(scanner, Long.MAX_VALUE, Spliterator.ORDERED | Spliterator.NONNULL);
return StreamSupport.stream(splt, false)
.onClose(scanner::close);
}
PS,您似乎也没有关闭资源。 总是 关闭一个InputStream
。
问题内容: 我有一个,我需要一个。如何从一个转换为另一个? 问题答案: 好问题。我有以下五种 6种方法可以做到这一点。 注意:返回。因此有效地两者是相同的。 调用,这又设置了数组。 另一方面,调用以下程序包私有构造函数。 从源代码中的Java 8的源代码 因此似乎是最有效的方法,在这两个存储器和速度方面,用于转换char到String。
问题内容: 我想知道有什么方法可以将字符串转换为 SOAPMessage 吗? 让我说我有一个字符串如下: 当我这样做时: 一切正常。但是我还是从服务器上得到的。可能是什么原因?我更改了<和>以转义字符。 问题答案: 将String转换为输入流,然后将其读入SOAP消息工厂。 您可以在此处阅读有关如何执行此操作的信息。
问题内容: 假设我有一个包含文本数据的文件,并且想将其转换为(例如,这样我就可以将流的内容写入日志文件)。 将并将其转换为的最简单方法是什么? 问题答案: 这是我的版本
问题内容: 在我的Java项目中,我将FileInputStream传递给一个函数,我需要将其转换(将类型转换FileInputStream转换为字符串),该怎么做。 问题答案: 您不能直接将其转换为字符串。您应该实现这样的东西将此代码添加到您的方法中 使用Aubin的解决方案:
问题内容: 给定一个字符串: 如何将其转换为? 问题答案: 像这样: 请注意,这假设你需要一个,它是一个字节流,它表示编码为UTF-8的原始字符串。 对于小于7的Java版本,请替换为。
问题内容: 如何在Java中将字符串转换为InputStreamReader? 问题答案: 也可以做到这一点: