में cmd कमांड के आउटपुट के साथ समस्या मैं cmd कमांड (उदाहरण के लिए डीआईआर) के परिणामों में पढ़ने की कोशिश कर रहा हूं। प्रक्रिया बनाने के बाद, मैं InputStreamReader
के संयोजन के साथ BufferedReader
का उपयोग करता हूं। किसी कारण से, BufferedReader
खाली आ रहा है, भले ही मुझे पता है कि कुछ आउटपुट पढ़ने के लिए होना चाहिए।जावा
String[] str = new String[] {"cmd.exe", "/c",
"cd", "c:\\",
"dir", "/b", "/s"
};
Runtime rt = Runtime.getRuntime();
try{
Process p = rt.exec(str);
InputStream is =p.getInputStream();
System.out.println(is.available());
InputStreamReader in = new InputStreamReader(is);
StringBuffer sb = new StringBuffer();
BufferedReader buff = new BufferedReader(in);
String line = buff.readLine();
System.out.println(line);
while(line != null)
{
sb.append(line + "\n");
System.out.println(line);
line = buff.readLine();
}
System.out.println(sb);
if (sb.length() != 0){
File f = new File("test.txt");
FileOutputStream fos = new FileOutputStream(f);
fos.write(sb.toString().getBytes());
fos.close();
}
}catch(Exception ex)
{
ex.printStackTrace();
}
प्रक्रिया है .getErrorStream() भी खाली लौट रहा है? –
हाँ - त्रुटिस्ट्रीम और इनपुटस्ट्रीम दोनों में 0 बाइट – chama
उपलब्ध हैं, मैंने अभी इसे फिर से चलाया है, और त्रुटि स्ट्रीम खाली नहीं है। जब मैं त्रुटि स्ट्रीम पढ़ता हूं, तो यह मुद्रित होता है "सिस्टम निर्दिष्ट पथ नहीं ढूंढ सकता है," जो वास्तव में समझ में नहीं आता है, लेकिन कम से कम यह कुछ है। – chama