1) मैं foo.exe चलाने के लिए लिनक्स टर्मिनल फोन और एक फ़ाइल में उत्पादन को बचाने के लिए जावा का उपयोग कर रहा: जब मैं कोड में बाद में haha.file पढ़ने के लिए योजना बना रहे हैंलिनक्स टर्मिनल को कॉल करने के लिए जावा का उपयोग करना: आउटपुट को कैसे फ़्लश करें?
String[] cmd = {"/bin/sh", "-c", "foo >haha.file"};
Runtime.getRuntime().exec(cmd);
2) समस्या है , यह अभी तक नहीं लिखा गया है:
File f=new File("haha.file"); // return true
in = new BufferedReader(new FileReader("haha.file"));
reader=in.readLine();
System.out.println(reader);//return null
3) के बाद ही कार्यक्रम किया जाता है haha.file लिखा जाएगा। मुझे केवल "राइटर्स" फ्लश करने का तरीका पता है, लेकिन यह नहीं पता कि कैसे स्टश फ्लश करना है। इस तरह। मैं जावा को टर्मिनल में फ़ाइल लिखने के लिए कैसे मजबूर कर सकता हूं?
अग्रिम धन्यवाद E.E.
इस दृष्टिकोण से सावधान रहें। Exec() का उपयोग करते समय stdout/stderr स्ट्रीम के साथ छिपे हुए नास्टियां हैं। प्रतीक्षा करने के लिए आपको वास्तव में आउटपुट/त्रुटि धाराओं का उपभोग करने की ज़रूरत है जबकि प्रतीक्षा करें() अवरुद्ध हो रहा है अन्यथा यह कभी वापस नहीं आ सकता है क्योंकि stdout/err buffers भरते हैं और फोर्क प्रक्रियाओं को अवरुद्ध करते हैं। चेकआउट अपाचे कॉमन्स-एक lib के लिए निष्पादन जो इसे हल करता है। –