আমরা কীভাবে একাধিক ফাইলগুলিতে একটি জাভা প্রোগ্রাম কনসোল আউটপুট পুনর্নির্দেশ করতে পারি?


161

আমরা কীভাবে একটি ফাইলে এক্সিলিপ কনসোল আউটপুট পুনর্নির্দেশ করতে পারি? আমি পারি:

  1. Run Configuration-> Commons-> Select a file
  2. ব্যবহার করুন System.setOut(PrintStream)এবং System.setErr(PrintStream)

1) এর সাথে সমস্যাটি হ'ল আমার এক ফাইলের পরিবর্তে বিভিন্ন কনসোল আউটপুট রেকর্ড করতে হবে।

2) এর সমস্যাটি হ'ল এটি কেবল কনসোল আউটপুট সঞ্চয় করে System.out.println()ফেলে দেওয়া ব্যতিক্রম বা স্ট্যাকট্রেস দ্বারা উত্পাদিত হয় । এটি অন্যান্য ধরণের আউটপুটগুলি যেমন লগ 4 জে সতর্কতা ইত্যাদি ক্যাপচার করে না

আমরা কীভাবে বিভিন্ন ফাইলগুলিতে কনসোল আউটপুটটিকে প্রোগ্রাম্যাটিকভাবে পুনর্নির্দেশ করতে পারি?


1) হতে পারে আপনি "ভেরিয়েবলস .." ব্যবহার করতে চাইবেন (প্রাক্তন) সি: \ পরীক্ষা $ {???: ??
t

2
এখানে একটি ধারণা। আপনার নিজের গ্রহপোষ প্লাগইন (যেমন, একটি কসোটম বোতাম) লিখুন যা কোনও ভেরিয়েবলের (এটিকে বলা ${NAME}) একটি এলোমেলো তবে অনন্য মান নির্ধারণ করে , তবে রান হিসাবে একই কাজ করবে। তারপরে $NAMEআউটপুট ফাইলের মান হিসাবে ব্যবহার করুন। হতে পারে?
এক দুই তিন

উত্তর:


176

হিসাবে চলুন এবং চয়ন করতে যান Run Configurations-> Commonএবং স্ট্যান্ডার্ড ইনপুট এবং আউটপুট আপনি একটি ফাইল চয়ন করতে পারেন।


106
আমি একেবারে হাসিখুশি মনে করি যে 40 জন লোক প্রশ্নের দ্বিতীয় লাইন থেকে একটি অনুলিপি-পেস্ট আপগ্রেট করেছে।
অ্যান্থনিডব্লিউ

13
@ অ্যান্টনি ডাব্লু আমার মনে হয় যে এটি বেশিরভাগ কারণেই মানুষ এখানে শিরোনাম প্রশ্ন দ্বারা পরিচালিত হয় যা "আমরা কীভাবে একটি ফাইলের মধ্যে গ্রহন আউটপুট পুনর্নির্দেশ করতে পারি" " এই উত্তরটি আসলে শিরোনাম প্রশ্নের উত্তর।
জিরোম বোচম্যান

1
যদি আপনি "রান কনফিগারেশন" খুঁজে না পান, এক্সিলিপস ৪.৪ (লুনা) ব্যবহার করে, আমি আমার লঞ্চ কনফিগারেশনটি (সার্ভার ট্যাবটিতে সার্ভারে ডাবল ক্লিক করে) খুললাম, "ওপেন ল্যানচ কনফিগারেশন" ক্লিক করুন, তারপরে সাধারণ ট্যাবটিতে গিয়েছিলাম । সেই কথোপকথনের নীচের অংশে, "স্ট্যান্ডার্ড ইনপুট এবং আউটপুট" নামে একটি বিভাগ রয়েছে। এখানে, আমি ফাইল ক্লিক করতে এবং এটি একটি ফাইল নাম দিতে পারে।
গাই শালনাট

1
ইঙ্গিত: একটি টার্মিনাল খুলুন, echo $TTYএবং এটি আপনার ফাইল হিসাবে যা ফিরে আসবে তা নির্দিষ্ট করুন। তারপরে টার্মিনালটি আপনার Eclipse কনসোলটিতে যা আছে তা মিরর করবে।
শ্রীধর সারনোবাত

2
কি? প্রশ্নকর্তার প্রশ্নটি মনোযোগ সহকারে পড়ার সময় এই উত্তরটি ভুল।
কম্পিউটার

11

আপনি আউটপুট ফাইলের নামের ভিতরে "ভেরিয়েবল" ব্যবহার করতে পারেন, উদাহরণস্বরূপ:

/tmp/FetchBlock-${current_date}.txt

বর্তমান তারিখ:

YyyyMMdd_HHmm হিসাবে ফর্ম্যাট করা বর্তমান সিস্টেমের সময় ফেরত দেয়। বিকল্প বিন্যাস সরবরাহ করতে একটি Anচ্ছিক যুক্তি ব্যবহার করা যেতে পারে। যুক্তিটি java.util.SimleDate Format এর জন্য অবশ্যই বৈধ প্যাটার্ন হতে হবে।

অথবা আপনি গতিশীল কিছু নির্দিষ্ট করতে সিস্টেম_প্রোপার্টি বা একটি এনভ_ওয়ার ব্যবহার করতে পারেন (উভয়কেই আর্গুমেন্ট হিসাবে নির্দিষ্ট করা প্রয়োজন)


8

আপনি প্রোগ্রামটিমে সিস্টেমে আউটপুট সেট করতে পারেন:

System.setOut(new PrintStream(new BufferedOutputStream(new FileOutputStream("/location/to/console.out")), true));

সম্পাদনা:

এই সমাধানটি একটি এর উপর ভিত্তি করে তৈরি হয়েছে এর কারণে PrintStream, আমরা অটোফ্লাশ সক্ষম করতে পারি তবে ডক্স অনুসারে :

অটোফ্লাশ - একটি বুলিয়ান; সত্য হিসাবে, যখনই বাইট অ্যারে লেখা হয়, আউটপুট বাফারটি ফ্লাশ করা হবে যখনই একটি মুদ্রণ পদ্ধতি ব্যবহার করা হবে, বা একটি নতুন লাইন অক্ষর বা বাইট ('\ n') লেখা হবে

সুতরাং যদি কোনও নতুন লাইন না লেখা থাকে তবে System.out.flush()ম্যানুয়ালি মনে রাখবেন ।

(ধন্যবাদ রবার্ট টুপেলো-স্নেক)


1
System.out.flush()সম্ভবত কিছু আউটপুট অনুপস্থিত এড়ানোর জন্য আপনাকে এগুলি বন্ধ করতে হবে বলে মনে হয় ।
রবার্ট টুপেলো-শ্নেক

1

সমস্যা সমাধানের জন্য আমি $ {স্ট্রিং_প্রম্পট} ভেরিয়েবল ব্যবহার করি। অ্যাপ্লিকেশন চলাকালীন এটি একটি ইনপুট ডায়ালগ দেখায়। আমি সেই ডায়ালগটিতে তারিখ / সময়টি ম্যানুয়ালি সেট করতে পারি।

  1. ফাইল পাথের শেষে কার্সারটি সরান। এখানে চিত্র বর্ণনা লিখুন

  2. ভেরিয়েবলগুলি ক্লিক করুন এবং স্ট্রিং_প্রম্পট নির্বাচন করুন এখানে চিত্র বর্ণনা লিখুন

  3. প্রয়োগ এবং রান নির্বাচন করুন এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন


0

আমরা নিম্নলিখিত পদ্ধতিতে সিস্টেম ক্লাসের ভেরিয়েবল সেট করে এটি করতে পারি

System.setOut (নতুন মুদ্রণযন্ত্র (নতুন ফাইলআউটপুট স্ট্রিম ("আউটপুট ফাইলের পথে")))। এছাড়াও আপনাকে 'আউট' (System.out.close () বা System.out.flush ()) ভেরিয়েবলটি বন্ধ বা ফ্লাশ করতে হবে যাতে আপনার কোনও আউটপুট না হারিয়ে শেষ হয়।

সূত্র: http://xmodulo.com/how-to-save-console-output-to-file-in-eclipse.html

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.