2009-08-16 9 views
8

इस प्रश्न से संबंधित encrypt binary with 7z without filenames?क्या मैं stdin में बाइनरी डाल सकता हूं? सी #

सी # में मैं एसटीडीन में बाइनरी कैसे रख सकता हूं? मैं उम्मीद कर रहा था कि नीचे काम करेगा लेकिन यह नहीं करता है। और यह समझ में आता है। तो मैं एक बाइट [] सरणी कैसे धक्का?

new BinaryWriter(p.StandardInput.FormatProvider); 

उत्तर

9

सीधे आधार स्ट्रीम में लिखें:


new BinaryWriter(p.StandardInput.BaseStream) 
+0

या 'p.StandardInput.BaseStream.Write' का उपयोग करें। –

2

stdin सिर्फ एक और बाइट धारा है, एक अपने कार्यक्रम से

Stream st=Console.OpenStandardInput(); 
StreamReader sr=new StreamReader(st); 

आदि पढ़ सकते हैं क्ष में। जिसे आप संदर्भित करते हैं, stdin से आने वाली सामग्री को किसी अन्य प्रोग्राम के आउटपुट से पाइप किया जा रहा है। प्रक्रिया के उस हिस्से को करने के लिए, आप स्ट्रीम प्राप्त करने के लिए Console.OpenStandardOuput() का उपयोग करें और इसके माध्यम से बाइनरी को दबाएं।

+1

हाँ, पर अगर आप द्विआधारी के साथ काम कर रहे हैं, आप 'StreamReader', जो' TextReader' से प्राप्त होता है उपयोग करने के लिए नहीं करना चाहती। –

+1

हां - बाइनरी रीडर होना चाहिए। –

+0

अच्छा, शायद या शायद नहीं। यदि आप केवल बाइट्स से निपटना चाहते हैं, तो कच्ची धारा से निपटना ठीक है। 'बाइनरीफॉर्मेटर' जैसी अन्य चीजें भी उपयोगी होंगी - बस 'टेक्स्ट रीडर' नहीं। –