2010-06-24 13 views
8

मैं एक अधूरा csv फ़ाइल सही रूप में अपडेट करने की आवश्यकता है संपादित करने के लिए बनाया है, इसलिए इस तरह csv फ़ाइल है:सबसे अच्छा तरीका है csv फ़ाइल

one,two,three,four,five,six,seven,eight,nine,ten //This is a line(String) 

स्वाभाविक रूप से फ़ाइल कहीं अधिक जटिल है, लेकिन इस में है प्रारूप, यहां मैं new-word,new-word1, new-word3 या सात और आठ (या किसी भी श्रेणी) के बीच शब्दों को सम्मिलित करना चाहता हूं। मैं उसे कैसे कर सकता हूँ?

छद्म कोड, कोड या उदाहरण बहुत अच्छा होगा, मेरे पास कोई सुराग नहीं है कि कैसे शुरू किया जाए।

अद्यतन:

शायद मैं इस सरणी या आंकड़ा संरचना के कुछ प्रकार में कनवर्ट करना चाहिए। फिर किसी निश्चित स्थिति पर नया आइटम डालें, शेष सामग्री को सही स्थानांतरित करें और प्रत्येक प्रविष्टि के लिए ऐसा करें।

अगर सही जाने के लिए या जिस तरह से है कि यह कैसे प्रोग्रामिंग

अद्यतन द्वितीय शुरू करने के लिए है मैं नहीं जानता:

हो सकता है कि सूची में csv में पढ़ दो सूचियों में, विभाजन सूची, पहले एक सात के साथ समाप्त होता है। फिर पहली सूची में एन शब्द जोड़ें और अंत में दो सूचियों में शामिल हों? यह भी नहीं पता कि यह

उत्तर

5

प्रोग्राम कैसे करें OpenCSV पर एक नज़र डालें।

अद्यतन: यहाँ कुछ (मुश्किल से) स्यूडोकोड कैसे आप इस के लिए OpenCSV का प्रयोग करेंगे की एक सामान्य विचार देने के लिए है:

CSVReader reader = new CSVReader(new FileReader("old.csv")); 
CSVWriter writer = new CSVWriter(new FileWriter("new.csv")); 
String [] nextLine; 
while ((nextLine = reader.readNext()) != null) { 
    List<String> lineAsList = new ArrayList<String>(Arrays.asList(nextLine)); 
    // Add stuff using linesAsList.add(index, newValue) as many times as you need. 
    writer.writeNext(lineAsList.toArray()); 
} 

टोपी की नोक: @Mark पीटर्स, जो बताते हैं कि आप अद्यतन नहीं कर सकते Arrays.asList

+0

@Hank समलैंगिक मैं या तो इस समझ में नहीं आता कि आप क्या पोस्ट किया है या अपनी मौजूदा प्रविष्टियों को एक नई फाइल में लिखता है, मैं कहीं भी नहीं देखता हूं मैं आइटम –

+0

के बीच कैसे लिख सकता हूं ओपनसीएसवी डबल कोट्स से ठीक से बच जाएगा? –

+0

@ जो फिलिप्स मुझे लगता है कि आपकी परिभाषा पर निर्भर करता है, क्योंकि कोई स्पेक नहीं है। यह एक सीधा मुक्ति है; मैं आपको इसके साथ प्रयोग करने की सलाह देता हूं और [इसके मुखपृष्ठ पर अक्सर पूछे जाने वाले प्रश्न] (http://opencsv.sourceforge.net/) पढ़ता हूं। –

0

मैं इसे एक संग्रह में पार्स कर दूंगा, अपनी वस्तुओं को जोड़ दूंगा, फिर इसे एक सीएसवी में वापस प्रस्तुत कर दूंगा।

+0

हां, आप किसी भी संग्रह में एन आइटम कैसे डाल सकते हैं: दो आइटमों के बीच सरणी सूची जो पहले से ही –

+1

के अंदर हैं, आप ऑब्जेक्ट को सम्मिलित करने से पहले ऑब्जेक्ट पायेंगे, इसे इंडेक्स प्राप्त करें, और फिर वहां तीन चीजें डालें? –

+0

ऐरेलिस्ट के लिए, 'ऐड (int, ऑब्जेक्ट)' विधि का उपयोग करें। –

1

इस छद्म की तरह कोड मदद कर सकता है:

List values = Arrays.asList(line.split(",\s*")); 
List newWords = Arrays.aList(newWordsLine.split(",\s*")); 

values.addAll(7,newWords); 

StringBuffer buf = new StringBuffer(values.get(0)); 
for(v : values.subList(1,values.size()) { 
    buf.append(",",v); 
} 
return buf.toString(); 

इस लाइन पर 7 आइटम के बाद newWords डाल देगा

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