Process.start를 사용하여 Process를 만들고 있는데 stdin getter로 조금 붙어 있습니다. 이상적으로, StreamController를 다른 곳에서 설정했는데, Stream의 스트림을 stdin으로 전달하고 싶습니다. 하지만 Process.stdin과 상호 작용할 수있는 정교한 예제가 너무 많지 않으므로 표준 입력란보다 더 많은 작업을 수행하는 방법을 모르겠습니다.다트 IO 프로세스가 기존 스트림을 표준으로 사용하도록 어떻게 설정합니까?
그래서 난에 문자열 메시지를 추가 할 수 있습니다, 이런 식으로 뭔가있어 :
StreamController<String> processInput = new StreamController<String>.broadcast();
그리고 나는 이런 일을하고 싶지 :
Process.start(executable, args, workingDirectory: dir.path, runInShell: true).then((Process process) {
process.stdout
.transform(UTF8.decoder)
.listen((data) {
s.add('[[CONSOLE_OUTPUT]]' + data);
});
process.stdin.addStream(input.stream);
});
내가 addStream()
을 실현 Stream<List<int>>
을 원하지만 이유가 확실하지 않습니다. 이 문자열에 대한 write
방법을 가지고 있도록
인코딩 방법에 대한 송수신 이해가 적합합니다. 감사! – Crunchex