2012-04-21 15 views
5

मैं एक सरणी में एक पाठ फ़ाइल पढ़ना चाहता हूं। मैं उसे कैसे कर सकता हूँ?एक सरणी में पाठ फ़ाइल पढ़ें

data = new String[lines.size]

मैं सरणी में हार्ड कोड 10 नहीं करना चाहती।

BufferedReader bufferedReader = new BufferedReader(new FileReader(myfile)); 
String []data; 
data = new String[10]; // <= how can I do that? data = new String[lines.size] 

for (int i=0; i<lines.size(); i++) { 
    data[i] = abc.readLine(); 
    System.out.println(data[i]); 
} 
abc.close(); 
+1

एक सरणी का उपयोग क्यों करें? अन्य कंटेनर क्यों नहीं? – Mat

+0

क्योंकि मेरे शिक्षक ने कहा कि txt फ़ाइल डेटा – heyman

+3

स्टोर करने के लिए सरणी का उपयोग करना चाहिए ग्रेट टीचर, ग्रेट स्टूडेंट – Lucifer

उत्तर

8

एक ArrayList या एक अन्य गतिशील आंकड़ा संरचना का उपयोग करें:

BufferedReader abc = new BufferedReader(new FileReader(myfile)); 
List<String> lines = new ArrayList<String>(); 

while((String line = abc.readLine()) != null) { 
    lines.add(line); 
    System.out.println(data); 
} 
abc.close(); 

// If you want to convert to a String[] 
String[] data = lines.toArray(new String[]{}); 
+3

यह काम करता है! धन्यवाद! इसके अलावा, ((स्ट्रिंग लाइन = abc.readLine()) काम नहीं करता है, यह स्ट्रिंग लाइन होना चाहिए; जबकि ((line = abc.readLine()) फिर काम कर सकता है:] – heyman

2

बजाय एक List का प्रयोग करें। अंत में, यदि आप चाहते हैं, तो आप इसे वापस String[] में परिवर्तित कर सकते हैं।

BufferedReader abc = new BufferedReader(new FileReader(myfile)); 
List<String> data = new ArrayList<String>(); 
String s; 
while((s=abc.readLine())!=null) { 
    data.add(s); 
    System.out.println(s); 
} 
abc.close(); 
1

आप इसे जिस तरह से dtechs करते हैं, और एक ArrayList का उपयोग इसे पढ़ें 2 बार करने की अनुमति नहीं कर रहे हैं: सबसे पहले, सरणी, और दूसरी बार इसे भरने की घोषणा करने के लिए लाइनों की संख्या प्राप्त करने के लिए।

+0

वास्तव में यह तरीका है यदि आप इसे करेंगे केवल सरणी को अनुमति दी जाती है (या आप सी या कुछ में प्रोग्रामिंग कर रहे हैं) – dtech

+1

वैकल्पिक रूप से, आप 'सूची' क्या कर सकते हैं और आवश्यकतानुसार सरणी के आकार को बढ़ा सकते हैं, arrayCopy() का उपयोग करके सभी आइटम कॉपी कर सकते हैं और महंगा संचालन से परहेज कर सकते हैं फ़ाइल को दो बार पढ़ना (हालांकि यदि यह एक छोटी फाइल है, तो यह महत्वपूर्ण नहीं होगा)। –

संबंधित मुद्दे