草庐IT

管道化

全部标签

java - 可以在不破坏管道的情况下封装中间流操作吗?

使用Java8Streams,是否有可能以某种不会破坏流管道的方式封装和重用中间流操作?考虑JavaTutorialonstreams中的这个例子:doubleaverage=roster.stream().filter(p->p.getGender()==Person.Sex.MALE).mapToInt(Person::getAge).average().getAsDouble();假设我需要在整个代码的不同位置使用filter和mapToInt操作。我可能想尝试封装该逻辑,以便可以重复使用,例如:IntStreammaleAges(Streamstream){returnstre

java - 在用 Java 读入时如何将输入流通过管道传输到压缩文件?

我想执行一个程序,当它运行时读入它的输出并将输出输出到一个压缩文件中。该程序的输出可能非常大,所以我的想法是不要在内存中保留太多-只是在我得到它时将其发送到zip。 最佳答案 ZipOutputStreamtargetStream=newZipOutputStream(fileToSaveTo);ZipEntryentry=newZipEntry(nameOfFileInZipFile);targetStream.putNextEntry(entry);byte[]dataBlock=newbyte[1024];intcount=i

Elasticsearch:从 Kafka 到 Elasticsearch 的实时用户配置文件数据管道

如今,网络服务、数字媒体、传感器日志数据等众多来源产生了大量数据,只有一小部分数据得到妥善管理或利用来创造价值。读取大量数据、处理数据并根据这些数据采取行动比以往任何时候都更具挑战性。在这篇文章中,我试图展示:在Python中生成模拟用户配置文件数据通过KafkaProducer将模za拟数据发送到Kafka主题使用Logstash读取数据并上传到Elasticsearch使用Kibana可视化流数据在我之前的文章“Elastic:使用Kafka部署ElasticStack”,我实现了如下的一个数据pipeline: 在今天的文章中,我将实现如下的一个数据pipeline:在今天的展示中,我将

java - 将 `META-INF/services` 用于驱动程序的内部管道

我开发了JaybirdJDBC驱动程序,今天我遇到了一个问题(JDBC-325、HowtoconfigureJaybirdwithhibernate),它与Jaybird如何加载它的一些组件以及NetBeans如何限制类加载有关。这个问题与Jaybird使用META-INF/services中的条目加载自身部分的方式有关,并且NetBeans为Hibernate向导使用的类加载器明确忽略了这些文件(请参阅下面的详细信息).我可以通过(也)尝试加载属于Jaybird实现一部分的硬编码插件列表,或将定义移至其他位置来解决此问题。但是我想知道将META-INF/services用于内部目的是

java - 在 Java 7 中使用 ProcessBuilder 构建流程管道

我一直在尝试弄清楚如何使用新的ProcessBuilder在Java中管理一些进程。我找不到一个合适的例子来说明我想做什么,当我尝试自己做的时候,这个过程就会挂起。我希望有一个非常简单的代码示例,它运行的等效于cattest.txt|wc,但不是通过shell。--更新--好吧,澄清一下。我知道有一些方法可以通过读写流来模拟管道。我想知道这是否是由redirectInput以某种自动方式完成的和redirectOutputJava7中引入的方法。 最佳答案 在这种情况下你不需要管道。"grepblatest.txt"但是假设你需要一

java - 如何将 OutputStream 通过管道传输到 StreamingDataHandler?

我在JAX-WS中有一个JavaWeb服务,它从另一个方法返回一个OutputStream。我似乎无法弄清楚如何将OutputStream流式传输到返回的DataHandler中,而不是创建一个临时文件,写入它,然后将其作为InputStream再次打开。这是一个例子:@MTOM@WebServiceclassExample{@WebMethodpublic@XmlMimeType("application/octet-stream")DataHandlerservice(){//CreateatemporaryfiletowritetoFilefTemp=File.createTem

java - 将子进程输出直接通过管道传输到标准输出 (java/clojure)

我正在寻找一种在clojure中启动子进程的方法(java可以),并将其输出实时直接发送到stdout。我能找到的最接近的是clojure的Conch库,它允许您将输出发送到*out*,但在进程运行完成之前它不会实际显示输出. 最佳答案 不确定是否有方便的Clojure包装器:(->>(..RuntimegetRuntime(exec"ls")getInputStream)java.io.InputStreamReader.java.io.BufferedReader.line-seq(mapprintln))实践中值得注意的是,需

java - 如何在 Windows 和 JDK 6u45 上将进程输出通过管道传输到文件

我有以下Windows批处理文件(run.bat):@echooffechohellobatchfiletosysout以及以下运行批处理文件并将输出重定向到文件的java代码:publicstaticvoidmain(String[]args)throwsIOException{System.out.println("Currentjavaversionis:"+System.getProperty("java.version"));ProcessBuilderpb=newProcessBuilder("cmd.exe","/c","run.bat",">>","stdout.txt

java - 正则表达式匹配管道字符第 n 次出现后的子字符串

我正在尝试为下面的示例文本构建一个正则表达式,我需要在其中替换粗体文本。到目前为止我能做到这么多((\|)).*(\|)选择第一个和最后一个pip字符之间的整个字符串。我必须使用apache或java正则表达式。示例字符串:管道之间的文本长度可能不同1.1|ProvCM|111111111111|**10.15.194.25**|10.100.10.3|10.100.10.1|docsis3.0 最佳答案 要匹配第nth管道出现后的部分,您可以使用此正则表达式:/^(?:[^|]*\|){3}([^|]*)/这里n=3它将匹配匹配组

java - 如何将 InputStream 通过管道传输到 ProcessBuilder

请往下看第二次更新。我不想改变这个问题之前的上下文。我正在使用来自Java应用程序的wkhtmltoimage。使用它的标准方法是-path-to-exehttp://url.com/image.png。根据他们的文档,如果我们写一个-而不是输入URL,输入将转换为STDIN。我正在使用ProcessBuilder启动流程-ProcessBuilderpb=newProcessBuilder(exe_path,"-",image_save_path);Processprocess=pb.start();现在我不知道如何将输入流通过管道传输到这个进程。我将一个模板文件读入了DataInp