दिलचस्प पोस्ट
एक समारोह बुला बैकिक्स आर जेवा को आर पर लोड करने में असमर्थ Xcode 6 में स्टोरीबोर्ड में "मार्जिन पर नियंत्रण" क्या है (पीआई) स्पार्क में डेटा लिखने और पढ़ने के लिए जेडीबीसी स्रोत का उपयोग कैसे करें? मैं दशमलव के साथ एक स्ट्रिंग को डबल में कैसे पार्स कर सकता हूं? स्थिति बार और नेविगेशन बार आईओएस 7 में मेरे विचार की सीमा पर दिखाई देते हैं Google मैप्स एपीआई में रूट के बीच मूल और गंतव्य के साथ स्थान प्राप्त करने के तरीके (जैसे गैस स्टेशन) जावास्क्रिप्ट फ़ंक्शन (क्लाइंट साइड) का निष्पादन रोकें या इसे ट्विक करें मैं प्रोग्राम को कई लाइनों में लेआउट में एक-एक करके बटन कैसे जोड़ूं? (->) मोनाद और भ्रम के बारे में (->) उदाहरणों का उपयोग कैसे करें java.net.ConnectException: कनेक्शन अस्वीकार कर दिया आदेश में स्क्रैपी क्रॉल यूआरएल IPhone 5 स्क्रीन रिज़ॉल्यूशन के लिए ऐप्स को कैसे विकसित या माइग्रेट करें? एसएसएल की जांच कैसे करें स्प्रिंग एमवीसी टेस्ट का प्रयोग यूनिट टेस्ट मल्टीपार्ट पोस्ट अनुरोध से करें

कंसोल आउटपुट को एक txt फ़ाइल में कैसे लिखें

मैंने कंसोल आउटपुट को इस कोड सुझाव ( http://www.daniweb.com/forums/thread23883.html# ) का उपयोग करते हुए एक txt फ़ाइल में लिखने की कोशिश की है, हालांकि मैं सफल नहीं था क्या गलत है?

try { //create a buffered reader that connects to the console, we use it so we can read lines BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); //read a line from the console String lineFromInput = in.readLine(); //create an print writer for writing to a file PrintWriter out = new PrintWriter(new FileWriter("output.txt")); //output to the file a line out.println(lineFromInput); //close the file (VERY IMPORTANT!) out.close(); } catch(IOException e1) { System.out.println("Error during reading/writing"); } 

वेब के समाधान से एकत्रित समाधान "कंसोल आउटपुट को एक txt फ़ाइल में कैसे लिखें"

आपको ऐसा कुछ करने की आवश्यकता है:

 PrintStream out = new PrintStream(new FileOutputStream("output.txt")); System.setOut(out); 

दूसरा बयान कुंजी है यह माना जाता है कि "अंतिम" System.out विशेषता के मूल्य को मुद्रित किया जाता है PrintStream मान।

मानक इनपुट और त्रुटि धाराओं को बदलने के लिए समान तरीके ( setIn और setErr ) हैं; विवरण के लिए java.lang.System javadocs देखें।


मैं बस जोड़ना चाहूंगा कि यह लॉग- इन , लॉबबैक या मानक जावा जावा.उटलरॉगिंग सबसिस्टम जैसे लॉगिंग सबसिस्टम का उपयोग करने के लिए आमतौर पर एक बेहतर विचार है। ये रनटाइम कॉन्फ़िगरेशन फ़ाइलों के माध्यम से ठीक-ठाक लॉगिंग नियंत्रण के रूप में ऐसी चीजें प्रदान करते हैं, रोलिंग लॉग फाइलों के लिए समर्थन, सिस्टम लॉगिंग के लिए फ़ीड।

या, यदि आप जो कर रहे हैं "लॉगिंग" नहीं है, तो या तो विचार करें:

  • मानक आउटपुट को कमांड लाइन पर एक फ़ाइल में रीडायरेक्ट करना, या
  • System.out को लिखने के बजाय एक पैरामीटर के रूप में पारित एक out स्ट्रीम का उपयोग करने के लिए अपने आवेदन को बदल रहा है

(जैसे रीडायरेक्टिंग) के साथ गड़बड़ करना System.out आपके जेवीएम में अन्य कोड के लिए गंदे आश्चर्य का कारण है, जो ऐसा होने की उम्मीद नहीं कर रहा है।

किसी भी कोड लिखने की कोई आवश्यकता नहीं है, केवल कंसोल पर सीएमडी में लिख सकते हैं:

 javac myFile.java java ClassName > a.txt 

आउटपुट डेटा को a.txt फ़ाइल में संग्रहीत किया जाता है।

कंसोल आउटपुट को संरक्षित करने के लिए, अर्थात्, एक फाइल पर लिखना और उसे कंसोल पर प्रदर्शित किया जाता है, आप निम्न तरह से एक क्लास का उपयोग कर सकते हैं:

  public class TeePrintStream extends PrintStream { private final PrintStream second; public TeePrintStream(OutputStream main, PrintStream second) { super(main); this.second = second; } /** * Closes the main stream. * The second stream is just flushed but <b>not</b> closed. * @see java.io.PrintStream#close() */ @Override public void close() { // just for documentation super.close(); } @Override public void flush() { super.flush(); second.flush(); } @Override public void write(byte[] buf, int off, int len) { super.write(buf, off, len); second.write(buf, off, len); } @Override public void write(int b) { super.write(b); second.write(b); } @Override public void write(byte[] b) throws IOException { super.write(b); second.write(b); } } 

और इस रूप में प्रयोग किया जाता है:

  FileOutputStream file = new FileOutputStream("test.txt"); TeePrintStream tee = new TeePrintStream(file, System.out); System.setOut(tee); 

( सिर्फ एक विचार, पूरा नहीं )

निम्न विधि बनाएं:

 public class Logger { public static void log(String message) { PrintWriter out = new PrintWriter(new FileWriter("output.txt", true), true); out.write(message); out.close(); } } 

(मैंने उपरोक्त वर्ग में उचित IO हैंडलिंग को शामिल नहीं किया है, और यह संकलन नहीं करेगा – इसे स्वयं करें। फ़ाइल नाम को कॉन्फ़िगर करने पर भी विचार करें। "सच" तर्क देखें। इसका अर्थ है कि फ़ाइल फिर से बनाई नहीं जाएगी हर बार जब आप विधि कहते हैं)

तब System.out.println(str) बजाय Logger.log(str)

यह मैनुअल दृष्टिकोण बेहतर नहीं है लॉगिंग ढांचे का उपयोग करें – slf4j, log4j , कॉमन्स-लॉगिंग , और कई और अधिक

चर्चा के कई कार्यक्रमपरक तरीकों के अलावा, एक अन्य विकल्प शैल से मानक आउटपुट को रीडायरेक्ट करना है। यहां कई यूनिक्स और डॉस उदाहरण हैं

आप System.out माध्यम से अपने खुद के PrintStream माध्यम से सभी आउटपुट रीडायरेक्ट करने के लिए अपने प्रोग्राम की शुरुआत में PrintStream () का उपयोग कर सकते हैं।

यह मेरा विचार है कि आप क्या करने का प्रयास कर रहे हैं और यह ठीक काम करता है:

 public static void main(String[] args) throws IOException{ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter out = new BufferedWriter(new FileWriter("c://output.txt")); try { String inputLine = null; do { inputLine=in.readLine(); out.write(inputLine); out.newLine(); } while (!inputLine.equalsIgnoreCase("eof")); System.out.print("Write Successful"); } catch(IOException e1) { System.out.println("Error during reading/writing"); } finally { out.close(); in.close(); } } 

पाठ फ़ाइल को कंसोल आउटपुट लिखने का सबसे आसान तरीका है

 //create a file first PrintWriter outputfile = new PrintWriter(filename); //replace your System.out.print("your output"); outputfile.print("your output"); outputfile.close(); 

एक txt फ़ाइल को कंसोल आउटपुट लिखने के लिए

 public static void main(String[] args) { int i; List<String> ls = new ArrayList<String>(); for (i = 1; i <= 100; i++) { String str = null; str = +i + ":- HOW TO WRITE A CONSOLE OUTPUT IN A TEXT FILE"; ls.add(str); } String listString = ""; for (String s : ls) { listString += s + "\n"; } FileWriter writer = null; try { writer = new FileWriter("final.txt"); writer.write(listString); writer.close(); } catch (IOException e) { e.printStackTrace(); } } 

यदि आप पीडीएफ को तो बजाय पाठ फ़ाइल बनाना चाहते हैं, तो आप नीचे दिए गए निर्भरता का उपयोग करते हैं:

 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.0.6</version> </dependency> 

पीडीएफ जेनरेट करने के लिए, इस कोड का उपयोग करें:

 public static void main(String[] args) { int i; List<String> ls = new ArrayList<String>(); for (i = 1; i <= 100; i++) { String str = null; str = +i + ":- HOW TO WRITE A CONSOLE OUTPUT IN A PDF"; ls.add(str); } String listString = ""; for (String s : ls) { listString += s + "\n"; } Document document = new Document(); try { PdfWriter writer1 = PdfWriter .getInstance( document, new FileOutputStream( "final_pdf.pdf")); document.open(); document.add(new Paragraph(listString)); document.close(); writer1.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } } 
 PrintWriter out = null; try { out = new PrintWriter(new FileWriter("C:\\testing.txt")); } catch (IOException e) { e.printStackTrace(); } out.println("output"); out.close(); 

मैं FileWriter के लिए पूर्ण पथ का उपयोग कर रहा हूँ यह एक जादू की तरह मेरे लिए काम कर रहा है यह भी सुनिश्चित करें कि फ़ाइल स्थान में मौजूद है। अन्यथा यह एक FileNotFoundException फेंक देगा। यदि फ़ाइल नहीं मिली है तो यह विधि लक्ष्य स्थान में एक नई फ़ाइल नहीं बनाती है।

नेटबीन में, आप माउस पर राइट क्लिक कर सकते हैं और फिर .txt फ़ाइल के रूप में सहेज सकते हैं। फिर, निर्मित .txt फ़ाइल के आधार पर, आप फ़ाइल को किसी भी प्रारूप में कनवर्ट कर सकते हैं जिसे आप प्राप्त करना चाहते हैं।