2015-05-18 7 views
9

का उपयोग कर जावा 8 में फ़ाइल में टेक्स्ट को जोड़ने के लिए कैसे मैं एक निर्दिष्ट Charset cs का उपयोग कर जावा 8 में किसी मौजूदा फ़ाइल में टेक्स्ट जोड़ने के लिए एक आसान और सहेजने वाला समाधान ढूंढ रहा हूं। समाधान जो मुझे मिला here मानक Charset से संबंधित है जो मेरी स्थिति में कोई नहीं है।निर्दिष्ट वर्णसेट

उत्तर

14

एक तरह से यह Files.write that accepts a Charset की अतिभारित संस्करण का उपयोग करने के लिए:

import static java.nio.charset.StandardCharsets.UTF_8; 
import static java.nio.file.StandardOpenOption.APPEND; 
import static java.nio.file.StandardOpenOption.CREATE; 

List<String> lines = ...; 
Files.write(log, lines, UTF_8, APPEND, CREATE); 
+0

महान। मैं पहले से ही उस समारोह के बारे में सोच रहा था लेकिन मुझे नहीं पता था कि एक ओपनऑप्शन "ऐपेंड" है। मैंने बस "विकल्प - विकल्प निर्दिष्ट किया है कि फाइल कैसे खोली गई है" और सोचा: कोई रास्ता नहीं, यह फ़ंक्शन मेरी सहायता नहीं करेगा। –

+1

पॉसिक्स एपीआई को जानना, इस मामले में 'खुला() ', ऐसी चीजों को समझने में मदद करता है। अंत में जावा केवल सिस्टम कार्यों पर रैपर प्रदान कर सकता है। यह जानना भी उपयोगी है कि यदि आप पर्याप्त शक्तिशाली नहीं हैं तो आप जेएनए के माध्यम से क्या कर सकते हैं। – the8472

+1

@ प्रिंसिपल-आदर्श-डोमेन एफवाईआई, http://stackoverflow.com/a/29456593/1587046 से जुड़े प्रश्न में यह पहले से ही उत्तर दिया गया था और फिर आप यह देखने के लिए एपीआई देख सकते थे कि एक ओवरलोडेड संस्करण है जहां आप वर्णमाला https://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#write(java.nio.file.Path,%20java.lang.Iterable,% निर्दिष्ट कर सकते हैं 20java.nio.charset.Charset,% 20java.nio.file.OpenOption ...) –

0

आप अमरूद Class Files से संलग्न विधि का उपयोग कर सकते हैं। इसके अलावा, आप java.nio.charset.Charset पर एक नज़र डाल सकते हैं।

3
Path path = Paths.get("..."); 
Charset charset = StandardCharsets.UTF_8; 
List<String> list = Collections.singletonList("..."); 
Files.write(path, charset, list, StandardOpenOption.APPEND); 
+1

छोटे टाइपो: StandardOpenOption.APPEND – Apostolos

+0

@ एपोस्टोलोस सही, धन्यवाद –

1

सवाल आप की दिशा में रखे में स्वीकार किए जाते हैं जवाब के आधार पर:

try (PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream("myfile.txt", true), charset)))) { 
    out.println("the text"); 
} catch (IOException e) { 
    //exception handling left as an exercise for the reader 
} 
संबंधित मुद्दे