2012-10-31 15 views
8

मैं एक ऐसे मुद्दे से फंस गया हूं जहां मुझे किसी .csv फ़ाइल में डेटा निर्यात करने की आवश्यकता है, लेकिन फाइल सिस्टम में फ़ाइल को स्टोर नहीं करना है - इसके बजाय मुझे ब्राउज़र में फ़ाइल को खोलने की आवश्यकता है।सीएसवी फ़ाइल में निर्यात करें और ब्राउज़र में खोलें

मैं फ़ाइल .csv में डेटा लिखने के लिए नीचे दिए गए कोड में लिखा है:

FileWriter myWriter = new FileWriter("output.csv"); 
myWriter.append(EmployeeCode); 
myWriter.append(','); 
myWriter.append(Band); 
myWriter.append('\n'); 
response.setHeader("Content-Disposition", "attachment; filename=output.csv"); 
response.setContentType("application/ms-excel"); 
response.setCharacterEncoding("UTF-8"); 

मैं .csv फ़ाइल को खोलने में सक्षम हूँ, लेकिन यह खाली है। मेरा डेटा इसमें आबादी नहीं मिलता है। कृपया सुझाव दें कि मैं क्या गलत कर रहा हूं।

+4

'myWriter.flush() जोड़ने' और जबकि प्रिंट स्क्रीन पर एक ही डेटा लेखन ' System.out.println (कर्मचारी कोड + "==" + बैंड); और वास्तव में देखें कि आपको डेटा मिल रहा है या नहीं। –

+0

फ़हीम, हां मुझे Sys आउट का उपयोग करके मुद्रित डेटा मिल रहा है। – user179516

+0

@ user179516 हमें अंत में धाराओं से पढ़ने के लिए फ़ाइल लेखकों को बंद करना चाहिए :) – gks

उत्तर

16

FileWriteroutput.csv फ़ाइल में सामग्री को प्रतिक्रिया आउटपुट स्ट्रीम पर नहीं लिखता है। आपको कुछ ऐसा करना चाहिए:

OutputStream out = response.getOutputStream(); 

प्रतिक्रिया आउटपुट स्ट्रीम प्राप्त करने के लिए।

और out स्ट्रीम में सामग्री लिखते हैं, की तरह कुछ: myWriter.close();

response.setContentType("application/ms-excel"); // or you can use text/csv 
response.setHeader("Content-Disposition", "attachment; filename=output.csv"); 
try { 
    // Write the header line 
    OutputStream out = response.getOutputStream(); 
    String header = "EmployeeCode, Band\n"; 
    out.write(header.getBytes()); 
    // Write the content 
    String line=new String(EmployeeCode+","+Band+"\n"); 
    out.write(line.toString().getBytes()); 
    out.flush(); 
} catch (Exception e) { 
    log.error(e); 
} 
अंत में
+0

मैंने कोशिश की, लेकिन मुझे FileNotFound त्रुटि मिल रही है। – user179516

+0

धन्यवाद एक टन दान। मैं समझ गया। – user179516

+0

@ user179516 आपका स्वागत है। – dan

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