/**
* Axelor Business Solutions
*
* Copyright (C) 2016 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.tool.file;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
import au.com.bytecode.opencsv.CSVReader;
import au.com.bytecode.opencsv.CSVWriter;
public final class CsvTool {
private CsvTool(){
}
/**
* Méthode permettant de lire le contenu d'un fichier
* @param fileName
* Le nom du fichier
* @return
* Une liste de tableau de valeur contenant l'ensemble des lignes
* @throws IOException
* @throws AxelorException
*/
public static List<String[]> cSVFileReader(String fileName, char separator) throws IOException {
CSVReader reader;
List<String[]> myEntries;
reader = new CSVReader(new FileReader(fileName), separator);
myEntries = reader.readAll();
reader.close();
return myEntries;
}
/*
* Format Windows, sans double quote et CR/LF à chaque fin de ligne
*/
public static CSVWriter setCsvFile(final String filePath, final String fileName, char separator) throws IOException {
java.io.Writer w = new FileWriter(filePath + File.separator + fileName);
return new CSVWriter(w, separator, CSVWriter.NO_QUOTE_CHARACTER, "\r\n");
}
public static CSVWriter setCsvFile(final String filePath, final String fileName, char separator, char quoteChar) throws IOException {
java.io.Writer w = new FileWriter(filePath + File.separator + fileName);
return new CSVWriter(w, separator, quoteChar, "\r\n");
}
public static void csvWriter(String filePath, String fileName, char separator, String[] headers, List<String[]> dataList) throws IOException
{
CSVWriter reconWriter = setCsvFile(filePath, fileName, separator);
if(headers != null) {
reconWriter.writeNext(headers);
}
reconWriter.writeAll(dataList);
reconWriter.flush();
try
{
reconWriter.close();
}
catch (IOException e) {
reconWriter = null;
}
}
public static void csvWriter(String filePath, String fileName, char separator, char quoteChar, String[] headers, List<String[]> dataList) throws IOException
{
CSVWriter reconWriter = setCsvFile(filePath, fileName, separator, quoteChar);
if(headers != null) {
reconWriter.writeNext(headers);
}
reconWriter.writeAll(dataList);
reconWriter.flush();
try
{
reconWriter.close();
}
catch (IOException e) {
reconWriter = null;
}
}
}