ঠিক মধ্যে প্রযুক্তিগত পার্থক্য কি console.writeline
এবং System.out.println
? আমি জানি যে System.out.println
স্ট্যান্ডার্ড আউটপুট লিখেছেন তবে এটি কনসোলের মতো একই জিনিস নয়?
আমি সম্পূর্ণরূপে বুঝতে পারছি না ডকুমেন্টেশন জন্য console.writeline
।
ঠিক মধ্যে প্রযুক্তিগত পার্থক্য কি console.writeline
এবং System.out.println
? আমি জানি যে System.out.println
স্ট্যান্ডার্ড আউটপুট লিখেছেন তবে এটি কনসোলের মতো একই জিনিস নয়?
আমি সম্পূর্ণরূপে বুঝতে পারছি না ডকুমেন্টেশন জন্য console.writeline
।
উত্তর:
এখানে System.out
/ .err
/.in
এবং ব্যবহারের মধ্যে প্রাথমিক পার্থক্য রয়েছে System.console()
:
System.console()
যদি আপনার অ্যাপ্লিকেশনটি টার্মিনালে না চালানো হয় তবে তা বাতিল করে দেয় ( যদিও আপনি নিজের অ্যাপ্লিকেশনটিতে এটি পরিচালনা করতে পারেন )System.console()
অক্ষর প্রতিধ্বনিত না করে পাসওয়ার্ড পড়ার জন্য পদ্ধতি সরবরাহ করেSystem.out
এবং System.err
ডিফল্ট প্ল্যাটফর্ম এনকোডিং ব্যবহার করুন, যখন Console
শ্রেণি আউটপুট পদ্ধতিগুলি কনসোল এনকোডিং ব্যবহার করেএই পরবর্তী আচরণটি তাত্ক্ষণিকভাবে সুস্পষ্ট নাও হতে পারে তবে এর মতো কোড পার্থক্যটি প্রদর্শন করতে পারে:
public class ConsoleDemo {
public static void main(String[] args) {
String[] data = { "\u250C\u2500\u2500\u2500\u2500\u2500\u2510",
"\u2502Hello\u2502",
"\u2514\u2500\u2500\u2500\u2500\u2500\u2518" };
for (String s : data) {
System.out.println(s);
}
for (String s : data) {
System.console().writer().println(s);
}
}
}
আমার উইন্ডোজ এক্সপিতে উইন্ডোজ -১২২২ এর একটি সিস্টেম এনকোডিং এবং আইবিএম ৮50০-এর একটি ডিফল্ট কনসোল এনকোডিং রয়েছে, এই কোডটি লিখে ফেলবে:
???????
?Hello?
???????
┌─────┐
│Hello│
└─────┘
নোট করুন যে এই আচরণটি সিস্টেম এনকোডিংয়ে ভিন্ন এনকোডিংতে সেট করা কনসোল এনকোডিংয়ের উপর নির্ভর করে। এটি অনেকগুলি historicalতিহাসিক কারণে উইন্ডোজের ডিফল্ট আচরণ।
এগুলি মূলত একইরকম, যদি আপনার প্রোগ্রামটি ইন্টারেক্টিভ প্রম্পট থেকে চালিত হয় এবং আপনি স্টিডিন বা স্টাডআউট পুনঃনির্দেশ করেন না:
public class ConsoleTest {
public static void main(String[] args) {
System.out.println("Console is: " + System.console());
}
}
ফলাফল স্বরূপ:
$ java ConsoleTest
Console is: java.io.Console@2747ee05
$ java ConsoleTest </dev/null
Console is: null
$ java ConsoleTest | cat
Console is: null
Console
বিদ্যমান কারণটি হল এমন বৈশিষ্ট্যগুলি সরবরাহ করা যা নির্দিষ্ট ক্ষেত্রে কার্যকর যা আপনাকে একটি ইন্টারেক্টিভ কমান্ড লাইন থেকে চালানো হচ্ছে:
Console
এগুলি সুন্দরভাবে সারিবদ্ধ করবে, আপনি যদি System.in/out ব্যবহার করেন তবে সমস্ত অনুরোধগুলি একই সাথে উপস্থিত হবে)।যে পুনঃনির্দেশ উপরে লক্ষ্য করুন এমনকি এক স্ট্রীমে ফলাফল System.console()
ফেরার null
; আরেকটি জ্বালা হ'ল Console
গ্রহাত্মা বা মাভেনের মতো অন্য কোনও প্রোগ্রাম থেকে তৈরি হওয়ার সময় প্রায়শই কোনও জিনিস পাওয়া যায় না ।
প্রথমে আমি ভয় করি আপনার প্রশ্নে কিছুটা ভুল রয়েছে। ক্লাস কনসোলে কোনও পদ্ধতি রাইটলাইন নেই। পরিবর্তে শ্রেণি কনসোল পদ্ধতি লেখক সরবরাহ করে () যা মুদ্রণ লেখককে দেয়। এই মুদ্রণ লেখকের মুদ্রণ () রয়েছে।
এখন কি পার্থক্য
System.console().writer().println("hello from console");
এবং
System.out.println("hello system out");
আপনি যদি কমান্ড লাইন থেকে আপনার অ্যাপ্লিকেশনটি চালান তবে আমার মনে হয় কোনও পার্থক্য নেই। তবে কনসোলটি যদি অনুপলব্ধ থাকে তবে System.out এখনও বিদ্যমান থাকা অবস্থায় System.console () বাতিল করে দেয়। আপনি যদি আপনার অ্যাপ্লিকেশন প্রার্থনা করেন এবং ফাইলগুলিতে STDOUT পুনর্নির্দেশ সম্পাদন করেন তবে এটি ঘটতে পারে।
আমি সবেমাত্র প্রয়োগ করেছি এমন একটি উদাহরণ এখানে।
import java.io.Console;
public class TestConsole {
public static void main(String[] args) {
Console console = System.console();
System.out.println("console=" + console);
console.writer().println("hello from console");
}
}
কমান্ড প্রম্পট থেকে অ্যাপ্লিকেশন চালানোর সময় আমি নিম্নলিখিতটি পেয়েছি:
$ java TestConsole
console=java.io.Console@93dcd
hello from console
কিন্তু যখন আমি STDOUT ফাইল করার জন্য পুনঃনির্দেশিত করেছি ...
$ java TestConsole >/tmp/test
Exception in thread "main" java.lang.NullPointerException
at TestConsole.main(TestConsole.java:8)
8 লাইন হয় console.writer().println()
।
এখানে / টিএমপি / পরীক্ষার সামগ্রী রয়েছে
console=null
আমি আশা করি আমার ব্যাখ্যা সাহায্য করবে।
কোন ব্যাপার Console.writeline
জাভা। এটি নেট।
কনসোল এবং স্ট্যান্ডার্ড আউট এক নয়। আপনি উল্লিখিত জাভাদোক পৃষ্ঠাটি যদি আপনি পড়ে থাকেন তবে আপনি দেখতে পাবেন যে কোনও অ্যাপ্লিকেশন কেবলমাত্র যদি কমান্ড লাইন থেকে ডেকে আনা হয় এবং আউটপুটটিকে এভাবে পুনঃনির্দেশিত না করা হয় তবেই কোনও কনসোলে অ্যাক্সেস পাওয়া যাবে an
java -jar MyApp.jar > MyApp.log
এ জাতীয় অন্যান্য মামলা সিমোনজে-র উত্তরে areাকা পড়েছে, যদিও তিনি নেই বলে এই ব্যর্থতার কথা বাদ দেন Console.writeline
।