2012-09-03 9 views
8

मैं अपने डेटा को सीएसवी फ़ाइल में व्यवस्थित करने की कोशिश कर रहा हूं। मैं अपना डेटा किसी विशेष पंक्ति में रखना चाहता हूं इसलिए मैंने "\ n" डालने का प्रयास किया लेकिन यह काम नहीं कर रहा है। कृपया मुझे किसी विशेष पंक्ति में डेटा डालने में मदद करें। धन्यवाद अग्रिम में ..एंड्रॉइड: सीएसवी फ़ाइल में नई लाइन कैसे लिखें?

public void writeData(String data,String strFilePath) 
     { 

      PrintWriter csvWriter; 
      try 
      { 

       File file = new File(strFilePath); 
       if(!file.exists()){ 
        file = new File(strFilePath); 
       } 
       csvWriter = new PrintWriter(new FileWriter(file,true)); 


       csvWriter.print(data+","+"hello"); 
       csvWriter.append('\n'); 
       csvWriter.print("world"); 


       csvWriter.close(); 


      } 
      catch (Exception e) 
      { 
       e.printStackTrace(); 
      } 
     } 
+1

"यह काम नहीं कर रहा है" का क्या मतलब है? आप वास्तव में क्या देखते हैं? प्रश्न पूछते समय विशिष्ट होने से आपको आवश्यक उत्तरों मिलेंगे। –

+1

उदाहरण के लिए यदि "पहला, दूसरा \ nthird" सीएसवी में जोड़ा जाता है, तो केवल "पहला" और "दूसरा" दिखाई देता है .. हम csv फ़ाइल में "तीसरा" नहीं देख सकते हैं। मुझे उम्मीद है कि यह एंड्रॉइड संपादकों के साथ समस्या है। मान लीजिए मैं विंडोज़ पीसी में अपने .csv को स्थानांतरित करता हूं, यहां तक ​​कि "तीसरा" भी नई पंक्ति में दिखाई देता है। –

उत्तर

8

आप कोड अच्छा लग रहा है, और मुझे यकीन है कि न्यू लाइन है कर रहा हूँ फ़ाइल में सही ढंग से लिखा है। एकमात्र कारण यह है कि मैं सोच सकता हूं कि आपने फ़ाइल को एक संपादक के साथ खोला है जो \n को लाइन विभाजक के रूप में नहीं मानता है, यह \r\n जोड़ी को लाइन विभाजक (विंडोज़ पर नोटपैड की तरह) के रूप में मानता है।

तो आप या तो write.print("\r\n") के साथ नई लाइन लिख सकते हैं, या बस vim जैसे कुछ अन्य संपादकों के साथ फ़ाइल खोल सकते हैं। कोई फर्क नहीं पड़ता कि आप फ़ाइल खोलने के लिए किस संपादक का उपयोग करते हैं, न्यूलाइन कैरेक्टर है।

+0

मैं एक्सेल के साथ खोलने की कोशिश कर रहा हूं..तुमने काम नहीं किया है ... कृपया मुझे अच्छे संपादकों के माध्यम से मार्गदर्शन करें जो दिखा सकते हैं "\ n" –

+0

क्या आपने Excel से फ़ाइल को फ़ाइल -> आयात -> द्वारा खोलने का प्रयास किया है। सीएसवी फ़ाइल'। आपको Excel के साथ फ़ाइल को सीधे नहीं खोलना चाहिए, जो यह पता लगाने में सक्षम नहीं है कि यह एक CSV फ़ाइल है। संपादकों के लिए, 'नोटपैड ++', या 'एडिटप्लस' या 'अल्ट्राएडिट' जैसी व्यावसायिक कंपनियां \ n' को लाइन विभाजक के रूप में मानेंगी। – neevek

+0

अंततः यह मेरे लिए csvWriter.print ("\ r \ n") के साथ काम करता है। @ Neevek धन्यवाद –

1

निम्नलिखित कोड (का उपयोग कर StringBuffer) की कोशिश करो - एक धागे-सुरक्षित, पात्रों में से परिवर्तनशील अनुक्रम:

public void writeData(String data, String strFilePath) { 

    PrintWriter csvWriter; 
    try { 
     /*1. declare stringBuffer*/ 
     StringBuffer oneLineStringBuffer = new StringBuffer(); 

     File file = new File(strFilePath); 
     if (!file.exists()) { 
      file = new File(strFilePath); 

     } 
     csvWriter = new PrintWriter(new FileWriter(file, true)); 

     /*2. append to stringBuffer*/ 
     oneLineStringBuffer.append(data + "," + "hello"); 
     oneLineStringBuffer.append("\n"); 
     oneLineStringBuffer.append("world"); 

     /*3. print to csvWriter*/ 
     csvWriter.print(oneLineStringBuffer); 

     csvWriter.close(); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
2

सीएसवी फाइलें उतनी आसान नहीं हैं जितनी लग सकती है। एक त्वरित सीएसवी पार्सर/लेखक लिखने की कोशिश करते समय मैं कई मुद्दों में भाग गया।

बस OpenCSV का उपयोग करें और अपनी सभी समस्याओं को तुरंत हल करें।

OpenCSV आप कुछ इस तरह कर सकते हैं का उपयोग करना:

CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"), '\t'); 
// feed in your array (or convert your data to an array) 
String[] entries = "first#second#third".split("#"); 
writer.writeNext(entries); 
1
  1. अपनी स्ट्रीम फ्लश इससे पहले कि आप इसे बंद यह csvWriter.flush()
  2. बजाय प्रिंट का उपयोग करके देखें, println
1

तुम बस है कोशिश csvWriter.print("world"); से csvWriter.println("world"); को बदलने के लिए। अगला प्रिंट अगले नई लाइन में होगा।

public void writeData(String data,String strFilePath) 
      { 

       PrintWriter csvWriter; 
       try 
       { 

        File file = new File(strFilePath); 
        if(!file.exists()){ 
         file = new File(strFilePath); 
        } 
        csvWriter = new PrintWriter(new FileWriter(file,true)); 


        csvWriter.println(data+","+"hello"); 
        csvWriter.print("world"); 


        csvWriter.close(); 


       } 
       catch (Exception e) 
       { 
        e.printStackTrace(); 
       } 
      } 
संबंधित मुद्दे