जावा - (Android) अपने OutputStream निस्तब्धता के बाद एक प्रक्रिया फिर से उपयोग करें

वोट
47

Android पर यह करने के लिए कोशिश कर रहा im:

Process p = Runtime.getRuntime().exec(sh);

   DataOutputStream out = new DataOutputStream(p.getOutputStream());

   out.writeBytes(something useful\n);

   out.close();

   p.waitFor();

   out = new DataOutputStream(p.getOutputStream());

   out.writeBytes(something useful\n);

   out.close();

   p.waitFor();

दूसरी बार मैं out.writeBytes निष्पादित (); बुरा फ़ाइल संख्या:, मैं एक जावा IOException मिलता है। मेरा ऐप कई देशी कार्यक्रमों पर अमल करने की है, लेकिन हमेशा एक ही प्रक्रिया का उपयोग करें। क्या किसी को पता है क्यों यह काम नहीं करता है?

28/08/2010 को 13:01
उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
0

जब आप फोन out.close()करेंगे, तो वह फोन करेगा close()अपनी प्रक्रिया की ouputstream पर।

हर बार जब आप फोन p.getOutputStream()आप एक ही मिलता है OutputStream, बाहर के अपने दूसरे उपयोग पर, p.getOutputStream()रिटर्न एक पहले से ही बंद कर दिया OutputStream

मूल रूप से अपने कोड के साथ, आप वास्तव में पहले बंद करने के लिए की जरूरत नहीं है DataOutputStream

सूत्रों का कहना है:

28/08/2010 को 13:12
का स्रोत उपयोगकर्ता

वोट
1

ध्यान दें कि खोल सार्वजनिक SDK का एक भाग (ध्यान दें यह SDK दस्तावेज़ में कहीं भी दर्ज नहीं किया गया है) नहीं है, इसलिए इस कोड को निजी एपीआई पर निर्भर प्रभाव में है।

इसके अलावा इस आप सामान्य आवेदन मॉडल के बाहर डालता है - हम कोई गारंटी नहीं है कि एक प्रक्रिया आप अलग किया गया है और मंच के द्वारा प्रबंधित नहीं किया जा रहा है का क्या होगा है। यह किसी भी समय मार डाला जा सकता है।

यह भी कर रही है जो कुछ भी आदेश अपने स्वयं प्रक्रिया में क्या कर रहा है की तुलना में, काम करने के लिए एक बहुत अक्षम तरीका है। और एक आदेश के लिए एक अलग प्रक्रिया शुरू करने से यह आप कर सकते हैं की तुलना में अधिक कुछ भी है, क्योंकि यह अभी भी अपने यूआईडी के रूप में चलता नहीं दूँगा।

तो मूल रूप से ... क्षुधा की 99.99% के लिए ऐसा नहीं करते हैं तो कृपया। आप एक टर्मिनल अनुप्रयोग लिख रहे हैं ... ठीक है, ठीक है, केवल गीक्स उस के बारे में वैसे भी देखभाल करने के लिए जा रहे हैं, और यह बहुत काम का हो, क्योंकि यह आपके uid, लेकिन ठीक है के रूप में चलाता है नहीं जा रहा है। लेकिन अन्यथा, कृपया कोई। :)

28/08/2010 को 19:23
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more