2012-12-04 16 views
5

मैं एक फ़ाइल में एक सरणी लिखने की कोशिश कर रहा हूं। मुझे पता है कि फ़ाइल में पूर्णांक या स्ट्रिंग कैसे लिखना है, लेकिन एक सरणी लाने के लिए मुझे भ्रमित करना है। मैं इस अभी उपयोग कर रहा हूँ:फ़ाइल में सरणी कैसे लिखें जावा

public static void write (String file, int[]x) throws IOException{ 
    BufferedWriter outputWriter = null; 
    outputWriter = new BufferedWriter(new FileWriter(filename)); 
    outputWriter.write("hi");// Here I know i cant just write x[0] or anything. Do i need 
          //to loop in order to write the array? 
    outputWriter.newLine(); 
    outputWriter.flush(); 
    outputWriter.close(); 



} 
+0

तुम पर पाश करना होगा तो अपने कोड कुछ इस तरह हो जाता है प्रत्येक तत्व बाहर arry प्रिंटिंग – NimChimpsky

+6

कम से कम Google इसे एक बार ... – Parth

+0

क्या आप परिणाम मनुष्यों या अन्य कार्यक्रमों द्वारा पठनीय होने के लिए चाहते हैं? –

उत्तर

12

अन्य लोगों की तरह, आप केवल सरणी पर लूप कर सकते हैं और तत्वों को प्रिंट कर सकते हैं एक - एक करके। आउटपुट को "अक्षरों और प्रतीकों" के बजाय संख्याओं के रूप में दिखाने के लिए, आपको प्रत्येक तत्व को एक स्ट्रिंग में परिवर्तित करने की आवश्यकता है।

public static void write (String filename, int[]x) throws IOException{ 
    BufferedWriter outputWriter = null; 
    outputWriter = new BufferedWriter(new FileWriter(filename)); 
    for (int i = 0; i < x.length; i++) { 
    // Maybe: 
    outputWriter.write(x[i]+""); 
    // Or: 
    outputWriter.write(Integer.toString(x[i]); 
    outputWriter.newLine(); 
    } 
    outputWriter.flush(); 
    outputWriter.close(); 
} 

तुम सिर्फ [1, 2, 3, ....] जैसी सरणी बाहर प्रिंट करना चाहते हैं, तो आप इस एक लाइनर के साथ पाश की जगह ले सकता:

outputWriter.write(Arrays.toString(x)); 
+0

वाह धन्यवाद यह सही है – Lock1618

+0

खुशी हुई इससे मदद मिली! – Windle

11

आप एक अंतर्निहित धारा वस्तुओं लिखने के ObjectOutputStream वर्ग का उपयोग कर सकते हैं।

outputStream = new ObjectOutputStream(new FileOutputStream(filename)); 
outputStream.writeObject(x); 

और Object वापस की तरह पढ़ - अपने सरणी में तत्वों से अधिक

inputStream = new ObjectInputStream(new FileInputStream(filename)); 
x = (int[])inputStream.readObject() 
+0

धन्यवाद लेकिन जब मैं इसका उपयोग करता हूं मुझे यादृच्छिक संख्या अक्षरों और प्रतीकों का एक समूह मिलता है – Lock1618

+1

@ लॉक 1618 ऑब्जेक्ट को वापस पढ़ें - 'नया ऑब्जेक्ट इनपुटपुट (नया फ़ाइल इनपुटस्ट्रीम (फ़ाइल नाम))। readObject(); ' –

3

बस पाश।

पूर्व:

for(int i=0; numOfElements > i; i++) 
{ 
outputWriter.write(array[i]); 
} 
//finish up down here 
+0

जब मैं इसका उपयोग करता हूं तो मुझे फ़ाइल में कोई आउटपुट नहीं मिलता है। – Lock1618

+0

@ Lock1618 क्या आप सुनिश्चित हैं कि numOfElements को आपके सरणी की लंबाई पर सेट किया जा रहा है? या यह कि आपकी सरणी भी पहले स्थान पर आबादी है? – Max

+0

सरणी सिर्फ एक पैरामीटर है और मैं इसे मुख्य रूप से पॉप्युलेट करता हूं। मैंने (int i = 0; x.length> i; i ++) outputWriter.write (x [i]); – Lock1618

4

आप अपाचे कॉमन्स के साथ ठीक कर रहे हैं lib

outputWriter.write(ArrayUtils.join(array, ",")); 
0

तो परिणाम है मनुष्य पढ़ सकते हैं और सरणी के तत्वों के लिए एक उचित toString() परिभाषित किया गया है करने के लिए ..

outputString.write(Arrays.toString(array)); 
संबंधित मुद्दे