2017-02-09 4 views
1

Я начинаю в java, и я пытаюсь записать данные в файл csv с помощью библиотеки apache.poi. но csvPrinter не может записывать данные в файл csv.не записывать данные в файл csv

URL dir = getClass().getClassLoader().getResource("csv/input.csv"); 
File file = new File(dir.getFile()); 
FileWriter fileWriter = new FileWriter(file); 
CSVPrinter csvPrinter = new CSVPrinter(fileWriter, csvFileFormat); 
CSVFormat csvFileFormat = CSVFormat.DEFAULT.withRecordSeparator(","); 
csvPrinter.print(data); 

EDIT

Это код.

FileWriter fileWriter = null; 
    CSVPrinter csvPrinter = null; 
    CSVFormat csvFileFormat = CSVFormat.DEFAULT.withRecordSeparator(","); 
    Logger logger = LoggerFactory.getLogger(this.getClass()); 

    { 
     try{ 
      URL dir = getClass().getClassLoader().getResource("csv/input.csv"); 
      File file = new File(dir.getFile()); 
      fileWriter = new FileWriter(file); 
      csvPrinter = new CSVPrinter(fileWriter, csvFileFormat); 
     }catch(Exception e){ 
      System.out.println(e.getMessage()); 
     } 
    } 

    @Override 
    public void write(List<? extends String[]> messages) throws Exception { 

     String[] data = messages.iterator().next(); 
     csvPrinter.print(data); 
     for (String singleData : data) { 
      System.out.println(singleData); 
     } 
//  csvwriter.close(); 
    } 
+0

Что в вашей переменной данных? – Tschallacka

+0

Пожалуйста, будьте более конкретным. Есть ли ошибка? Ошибка выполнения или компиляции? Показать полное сообщение об ошибке. Для ошибки времени выполнения также отображается полный стек. – vanje

+0

Вы использовали 'csvFileFormat' до его объявления. Зачем? –

ответ

0

Вы связаны с пои? Если не попробовать.

public static void main(String[] args) { 
     // TODO code application logic here\\ 

     Random random = new Random(); 
     StringBuilder stringbuilder = new StringBuilder(); 

     //make random data file 
     for(int i = 1; i <= 100; i++) 
     { 
      stringbuilder.append(random.nextInt(10000) + 1).append(",");//append data and comma 
      if(i % 10 == 0) 
      { 
       stringbuilder.append("\r\n");//add new line at end of one line of data 
      } 
     } 

     //creat the file that the data will be written to 
     File file = new File("results.csv"); 

     //write the string data to file 
     try(FileWriter fw = new FileWriter(file); BufferedWriter bw = new BufferedWriter(fw)) 
     {   
      bw.write(stringbuilder.toString()); 
     } 
     catch (IOException ex) 
     { 
      System.out.println("Something went wrong!"); 
     } 


     //open the file with your default program 
     try 
     { 
      Desktop.getDesktop().open(file); 
     } 
     catch (IOException ex) { 
      Logger.getLogger(Writecvsfile.class.getName()).log(Level.SEVERE, null, ex); 
      System.out.println("Can't open file!"); 
     } 
    }