在没有任何中间文件的情况下用Java创建GraphViz图
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在没有任何中间文件的情况下用Java创建GraphViz图,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1946字,纯文字阅读大概需要3分钟。
内容图文
![在没有任何中间文件的情况下用Java创建GraphViz图](/upload/InfoBanner/zyjiaocheng/724/5aae630a06594acba3035743c68338df.jpg)
我想使用GraphViz在我的程序中生成一些图形.只有一个问题:我不想生成任何临时文件.
这是我从这里得到的:
public class GraphBuilder{
/* Some code generating a DOT formatted String representing my graph */
/* Generation the graph using the plain format */
Runtime runtime = Runtime.getRuntime();
Process p = null;
try {
p = runtime.exec("neato -Tplain c:\\users\\tristan\\desktop\\test1");
} catch (IOException e) {
System.err.println(e.getMessage());
}
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
StringBuilder builder = new StringBuilder();
String line = null;
try{
while ( (line = br.readLine()) != null) {
builder.append(line);
builder.append(System.getProperty("line.separator"));
}
} catch(IOException e){
}
String result = builder.toString();
System.out.println(result);
好的,从现在开始,我的程序正在读取一个文件,但我希望neato程序读取我之前由程序生成的String.
我应该怎么做 ?
提前致谢 !
解决方法:
就像是:
// Create the process
Process process = new ProcessBuilder("neato", "-Tplain").start();
// Write to process's stdin
OutputStream osToProcess = process.getOutputStream();
PrintWriter pwToProcess = new PrintWriter(osToProcess);
pwToProcess.write("graph G { node1 -- node2; }"); // for example
pwToProcess.close();
// Read from process's stdout
InputStream isFromProcess = process.getInputStream();
BufferedReader brFromProcess = new BufferedReader(isFromProcess);
// do whatever you want with the reader, then...
brFromProcess.close();
// optionally...
process.waitFor();
我从这个示例代码中省略了异常处理 – 您需要将其放入以满足您的要求.将整个事物包装在try / catch块中可能就足够了 – 这取决于您的需求.
我验证了neato在命令行中读/写stdin / stdout:
$echo 'graph G { n1 -- n2; }' | neato -Tplain
graph 1 1.3667 1.2872
node n1 0.375 0.25 0.75 0.5 n1 solid ellipse black lightgrey
node n2 0.99169 1.0372 0.75 0.5 n2 solid ellipse black lightgrey
edge n1 n2 4 0.55007 0.47348 0.63268 0.57893 0.7311 0.70457 0.81404 0.81044 solid black
stop
内容总结
以上是互联网集市为您收集整理的在没有任何中间文件的情况下用Java创建GraphViz图全部内容,希望文章能够帮你解决在没有任何中间文件的情况下用Java创建GraphViz图所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。