मेरे इनपुट सीएसवी में डेटा है जैसे-

    VBS123ER,Abc_123,TEST_REPORT_FOR_SA,15-JUN-2020,76854,SAMPLE_REPORT


    VBS123ER,Abc_123,TEST_REPORT_FOR_SA,15-JUN-2020,76855,SAMPLE_REPORT

मैं अपने सीएसवी से प्रत्येक पंक्ति को पढ़ना चाहता हूं और प्रत्येक पंक्ति के लिए एक नई सीएसवी/टीXT फ़ाइल बनाना चाहता हूं। जैसे- पंक्ति 1 के लिए 1.txt/1.csv नामक एक फ़ाइल बनाई जाएगी जिसमें सभी पंक्ति 1 डेटा होगा। पंक्ति 2 और इसी तरह के लिए समान .. जावा में हम इसे कैसे प्राप्त कर सकते हैं?

File f = new File("C:\\Test\\AR_POC\\Input.txt"); 
BufferedReader b = new BufferedReader(new FileReader(f)); 
String readLine = ""; 
System.out.println("Reading file using Buffered Reader"); 
while ((readLine = b.readLine()) != null) { 
    System.out.println(readLine); 
    for(int i = 0; i < readLine.length; i++) { 
        FileOutputStream fo = new FileOutputStream("C:\\Test\\AR_POC\\" + Name + i + ".txt"); 
        fo.write(readLine.getBytes()); 
        fo.close(); 
    } 
}
-1
Cris-123 15 जून 2020, 18:08

1 उत्तर

सबसे बढ़िया उत्तर

आपको इनपुट फ़ाइल में लाइनों को गिनना चाहिए, न कि वर्तमान लाइन की लंबाई:

File f = new File("C:\\Test\\AR_POC\\Input.txt"); 
BufferedReader b = new BufferedReader(new FileReader(f)); 
String readLine = ""; 
System.out.println("Reading file using Buffered Reader");
int i = 0;
while ((readLine = b.readLine()) != null) { 
    System.out.println(readLine);
    FileOutputStream fo = new FileOutputStream("C:\\Test\\AR_POC\\" + Name + i++ + ".txt"); 
    fo.write(readLine.getBytes()); 
    fo.close(); 
}
0
Alex Rudenko 15 जून 2020, 15:19