OutputStream不会转换为字符串变量

问题描述 投票:0回答:2

因此,我想这将是一个简单的1或2行代码,以便我将OutputStream转换为字符串,以便我可以用自己的逻辑更好地检查它。

所以下面的代码是我目前正在使用的代码。如果我只想将输出写到控制台,就可以了。但是,我想将该输出存储为字符串public static void main(String[] args) throws IOException { Process p; try { p = Runtime.getRuntime().exec("cmd"); new Thread(new SyncPipe(p.getErrorStream(), System.err)).start(); new Thread(new SyncPipe(p.getInputStream(), System.out)).start(); PrintWriter stdin = new PrintWriter(p.getOutputStream()); stdin.println("cd C:/Local Apps/xxx/xxx/xxxx/eclipse"); stdin.println("lscm login -r https://xxxx.xxxx.xxxx.xxxx:9443/ccm -n xxxx.xxxx.xxx.xxxx -u itsme -P gr^34dbtfgt7y"); stdin.close(); p.waitFor(); } catch (Exception e) { e.printStackTrace(); } } } class SyncPipe implements Runnable { public SyncPipe(InputStream istrm, OutputStream ostrm) { istrm_ = istrm; ostrm_ = ostrm; } public void run() { try { final byte[] buffer = new byte[1024]; for (int length = 0; (length = istrm_.read(buffer)) != -1;) { ostrm_.write(buffer, 0, length); } } catch (Exception e) { e.printStackTrace(); } } private final OutputStream ostrm_; private final InputStream istrm_; }

我想从中获取数据:

ostrm_.write(buffer, 0, length);

我已经尝试过在Google上找到的各种方法:

String string = new String(ostrm_.toString()); System.out.println(string); String string = new String(ostrm_.toString("UTF-8")); System.out.println(string); final PrintStream blah = new PrintStream(ostrm_); final String string = blah.toString(); System.out.println(string); String blah = ostrm_.toString(); System.out.println(string); byte[] blah = buffer; String string = blah.toString();

我想我可以使用类似[[OutputStreamWriter
的东西,但同样,我似乎无法使其正常工作。因此,如果Java专家能够帮助我解决似乎如此简单,很难的问题,那就太好了。...

因此,我想这将是一个简单的1或2行代码,以便我将OutputStream转换为String,以便我可以用自己的逻辑更好地检查它。所以下面的代码是...

java multithreading byte runnable outputstream
2个回答
0
投票

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.