2017-02-09 10 views
1

私は初心者ですが、apache.poiライブラリを使用してcsvファイルにデータを書き込もうとしています。 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

poiにバインドされていますか?これを試していない場合。

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!"); 
     } 
    } 
関連する問題