Можно ли рекомендовать библиотеку Java для чтения (и возможно запись) файлы CSV? [закрытый]

Даже у меня было подобное требование - вызовите веб-сервис, если он не работает, повторите попытку 3 раза. Если это не удается даже после этих многочисленных испытаний, отправьте уведомление по электронной почте. После многопользовательской игры, anyMatch() пришел как спаситель. Мой пример кода выглядит следующим образом. В следующем примере, если метод webServiceCall возвращает true в первой итерации, поток не выполняет итерацию по мере того, как мы вызвали anyMatch(). Я считаю, это то, что вы ищете.

import java.util.stream.IntStream;

import io.netty.util.internal.ThreadLocalRandom;

class TrialStreamMatch {

public static void main(String[] args) {        
    if(!IntStream.range(1,3).anyMatch(integ -> webServiceCall(integ))){
         //Code for sending email notifications
    }
}

public static boolean webServiceCall(int i){
    //For time being, I have written a code for generating boolean randomly
    //This whole piece needs to be replaced by actual web-service client code
    boolean bool = ThreadLocalRandom.current().nextBoolean();
    System.out.println("Iteration index :: "+i+" bool :: "+bool);

    //Return success status -- true or false
    return bool;
}
49
задан ddimitrov 18 October 2008 в 08:15
поделиться

6 ответов

Мы использовали http://opencsv.sourceforge.net/ с хорошим успехом

, я также столкнулся с другим вопросом с хорошими ссылками: lib Java или приложение для преобразования CSV в XML-файл?

37
ответ дан Community 7 November 2019 в 21:48
поделиться

Я могу рекомендовать SuperCSV. Простой использовать, и сделал все, в чем я нуждался.

7
ответ дан Domchi 7 November 2019 в 21:48
поделиться

Эй, у меня есть проект с открытым исходным кодом для этого: JFileHelpers. Я думаю, что основное преимущество состоит в том, что это использует Аннотации Java, смотрите:

, Если у Вас есть этот боб:

@FixedLengthRecord()
public class Customer {
    @FieldFixedLength(4)
    public Integer custId;

    @FieldAlign(alignMode=AlignMode.Right)
    @FieldFixedLength(20)
    public String name;

    @FieldFixedLength(3)
    public Integer rating;

    @FieldTrim(trimMode=TrimMode.Right)
    @FieldFixedLength(10)
    @FieldConverter(converter = ConverterKind.Date, 
    format = "dd-MM-yyyy")
    public Date addedDate;

    @FieldFixedLength(3)
    @FieldOptional
    public String stockSimbol;    
}

И хочет проанализировать этот файл:

....|....1....|....2....|....3....|....4                
1   Antonio Pereira     10012-12-1978ABC
2   Felipe Coury          201-01-2007
3   Anderson Polga       4212-11-2007DEF      

Все, что необходимо сделать, является этим:

FileHelperEngine<Customer> engine = 
    new FileHelperEngine<Customer>(Customer.class); 
List<Customer> customers = 
    new ArrayList<Customer>();

customers = engine.readResource(
    "/samples/customers-fixed.txt");

кроме того, это поддерживает основную деталь, дату и преобразование формата, и многое другое. Сообщите мне то, что Вы думаете!

С наилучшими пожеланиями!

4
ответ дан kolrie 7 November 2019 в 21:48
поделиться

Я имел хороший успех и анализирующие и пишущие файлы CSV от Java с OpenCSV. Если Вы хотите прочитать или записать Excel совместимую электронную таблицу с Java, , библиотека POI от Apache является способом пойти.

0
ответ дан Reinstate Monica 7 November 2019 в 21:48
поделиться

Я нахожу Плоский корпус быть действительно хорошим с обработкой изворотливых файлов CSV (Escape, кавычки, плохие записи, и т.д.)

3
ответ дан ddimitrov 7 November 2019 в 21:48
поделиться

Файл CSV к вопросу XML, который задают ранее, кажется, отвечает на все мои вопросы.

OpenCSV ( http://opencsv.sourceforge.net/ ) также делает привязку к JavaBeans с помощью Стратегии

  ColumnPositionMappingStrategy strat = new ColumnPositionMappingStrategy();
  strat.setType(YourOrderBean.class);
  String[] columns = new String[] {"name", "orderNumber", "id"}; // the fields to bind do in your JavaBean
  strat.setColumnMapping(columns);

  CsvToBean csv = new CsvToBean();
  List list = csv.parse(strat, yourReader);

Отображения Позиции столбцов, JSEFA ( http://jsefa.sourceforge.net ) также, кажется, делает все, в чем я нуждаюсь - особенно обязательный к объектам Java - в дополнение к поддержке FLR и XML

2
ответ дан Vihung 7 November 2019 в 21:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: