আমি যে OutputStream
এপিআই ব্যবহার করছি তার জন্য আমাকে একটি নির্দিষ্ট করতে হবে তবে আউটপুটটির আসলে আমার প্রয়োজন নেই। জাভা এর OutputStream
সমান > /dev/null
?
আমি যে OutputStream
এপিআই ব্যবহার করছি তার জন্য আমাকে একটি নির্দিষ্ট করতে হবে তবে আউটপুটটির আসলে আমার প্রয়োজন নেই। জাভা এর OutputStream
সমান > /dev/null
?
উত্তর:
জাভা ১১-এর পর থেকে, একটি স্থিতিশীল ইউটিলিটি রয়েছে যা আপনার প্রয়োজন মতো করে, একটি স্ট্যাটিক কারখানার পদ্ধতি OutputStream.nullOutputStream()
:
একটি নতুন আউটপুট স্ট্রিম ফিরিয়ে দেয় যা সমস্ত বাইটকে বাতিল করে দেয়। ফিরে আসা স্ট্রিম শুরুতে খোলা। প্রবাহটি বন্ধ () পদ্ধতিতে কল করে বন্ধ করা হয়েছে। ()) বন্ধ করার পরবর্তী কলগুলির কোনও প্রভাব নেই।
/**Writes to nowhere*/
public class NullOutputStream extends OutputStream {
@Override
public void write(int b) throws IOException {
}
}
OutputStream nullOutputStream = new OutputStream() { @Override public void write(int b) { } };
জাভা মনে হচ্ছে না তবে অ্যাপাচি কমন্স আইও করে। নিম্নলিখিতটি একবার দেখুন:
আশা করি এইটি কাজ করবে.
এটি এখনও উল্লেখ করা, তাই আমিও যোগ করব পেয়ারা এর ByteStreams । নালআউটপুট স্ট্রিম () , কারণ কেউ কেউ অ্যাপাচি কমন্স আইও এর চেয়ে পেয়ারা পছন্দ করতে পারেন বা ইতিমধ্যে এটি তাদের প্রকল্পে থাকতে পারে।
দ্রষ্টব্য: আপনি যদি পেয়ারা পুরানো সংস্করণ ব্যবহার করেন (1.0 থেকে 13.0 পর্যন্ত), আপনি com.google.io.NullOutputStream ব্যবহার করতে চান ।
ইতিমধ্যে সরবরাহ করা উত্তরগুলি পুনঃভাগ করা -
জাভা এর কোন NullOutputStream
ক্লাস নেই। তবে আপনি নিজের নিজস্ব রোল করতে পারেন OutputStream
যা এতে লিখিত কোনও ডেটা উপেক্ষা করে - অন্য কথায় write(int b)
, write(byte[] b)
এবং write(byte[] b, int off, int len)
খালি পদ্ধতির বডি থাকবে। কমন আইও NullOutputStream
ক্লাস এটি করে।
স্ট্যান্ডার্ড লাইব্রেরি এএফাইক নয়, তবে আউটপুট স্ট্রিমে রাইটিং ওভাররাইড করে একটি তৈরি করা কঠিন হওয়া উচিত নয়
না, তবে এটি কার্যকর করা বেশ সহজ।
এই প্রশ্নটি দেখুন "কোডবেস থেকে System.out.println সরানোর উপায়"
এবং তারপরে আপনাকে কেবল এটি করতে হবে:
System.setOut( DevNull.out );
বা এরকম কিছু :)
জাভা 11 যোগ করেছেন আউটপুটস্ট্রিম.নুল আউটপুট স্ট্রিম ()
শহরে একটি নতুন ছেলে আছে, এটি এই কবজির মতো যত্ন নেয়, কোডের কয়েকটি লাইনই কাজ করা উচিত। এর জেডিকে ১১ এবং নাল রাইটার () এখানে চালু করা হয়েছে, এটি এটির যত্ন নেয়। অপারেটিং সিস্টেম (ওএস) নিয়ে চিন্তা না করেই একই পুরানো সমস্যা, নতুন উপায়ে মোকাবেলায় কোডটি এখানে যায়।
String fileContent = "Welcome to StackOverflow readers !! Here goes the question link...";
Writer writer = Writer.nullWriter();
writer.write(fileContent);
writer.close();
আশা করি এটি কারও সাহায্য করতে পারে!
আমি বিশ্বাস করি যে এটিই আপনি খুঁজছেন, আমি একই জিনিসটি সন্ধান করছিলাম: এটি স্ট্যান্ডার্ড ত্রুটি থেকে প্রসেসবিল্ডার অবজেক্টগুলিতে স্ট্যান্ডার্ড আউটপুট থেকে আউটপুট স্ট্রিমগুলি পুনর্নির্দেশের জন্য।
ব্লককোট
pb.redirectError( ProcessBuilder.Redirect.appendTo( new File( "NUL:" ) ) );