gpt4 book ai didi

java - OutputStream 未转换为字符串变量

转载 作者:行者123 更新时间:2023-11-30 05:28:16 31 4
gpt4 key购买 nike

所以我开始思考这将是一个简单的 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);

我尝试了在谷歌上找到的各种东西:

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 适用于后备箱和发动机罩:

enter image description here

最佳答案

您可以使用readAllBytes()并使用默认字符集创建一个String:

System.out.println(new String(istrm_.readAllBytes()));

关于java - OutputStream 未转换为字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58105863/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com