重定向子进程java的文件I/O
我正在打开一个新文件,并试图在java的子进程中写入它。我使用process builder启动子流程。文件正在创建中,但我想写入文件的任何内容都无法写入。有办法解决这个问题吗?我可以重定向子进程的stdin、stdout和stderr,但是如何重定向文件I/O。我想在java版本1.7上这样做 进程已启动:重定向子进程java的文件I/O,java,Java,我正在打开一个新文件,并试图在java的子进程中写入它。我使用process builder启动子流程。文件正在创建中,但我想写入文件的任何内容都无法写入。有办法解决这个问题吗?我可以重定向子进程的stdin、stdout和stderr,但是如何重定向文件I/O。我想在java版本1.7上这样做 进程已启动: ArrayList<String> params = new ArrayList<String>(); for (int i = 0; i < cmdarr
ArrayList<String> params = new ArrayList<String>();
for (int i = 0; i < cmdarray.length; i++) {
params.add(cmdarray[i]);
}
try {
//java.lang.Process process = Runtime.getRuntime().exec(cmdarray);
ProcessBuilder builder = new ProcessBuilder(params);
final java.lang.Process process = builder.start();
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while((line = br.readLine()) != null) {
System.out.println(line);
}
}
catch (IOException e) {
e.printStackTrace();
}
您忘记使用BufferedWriter br
,这就是字符串
未写入文件的原因
试试这个,可能会有帮助:
BufferedWriter br;
try {
br = new BufferedWriter(new FileWriter(new File("text.txt")));
br.write("This should be present in the file.");
br.close();
} catch (IOException e) {
e.printStackTrace();
}
您所做的代码在哪里???如果没有代码片段,我认为问题不会很简单。这是我实现map reduce框架的一部分,我在请求启动作业的节点上创建了一个新流程。
BufferedWriter br;
try {
br = new BufferedWriter(new FileWriter(new File("text.txt")));
br.write("This should be present in the file.");
br.close();
} catch (IOException e) {
e.printStackTrace();
}