使用可观测rxjava的java文件验证

nkkqxpd9  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(281)

我试图用rxjava解决一个经典的文件验证过程。我有一个csv文件,其中包含正常的头文件和另一个头文件列表,我需要验证这些头文件是否属于所选的数据类型,或者某个值是否为null。
我已经用普通的java实现了这一点,但是我想让我的验证代码更具React性。这就是我到目前为止所取得的成就。

String filePath = "/home/user/Documents/test.csv";
Path path = Paths.get(filePath);
Map<String,String> headerMap = new HashMap<>();
headerMap.put("feild11","String");
headerMap.put("feild10","String");
headerMap.put("feild9","Date");
headerMap.put("feild8","NOT-NULL");

// An map observalble which defines my valdiation rules
Observable<Map<String,String>> fieldsToValidae = Observable.just(headerMap);

Observable<String> fileObservalbe = RxFileReader.from(path);
// An observalbe which gives a list of headers
Observable<String> headers = fileObservalbe.first();

// An observalbe which gives me list of feild values
Observable<String> feildValues = fileObservalbe.skip(1);

在这里,我有3个可观察的组合和验证在第一个示例(行)验证失败。
下面是我要处理的示例数据:
标题:
名|姓|性别| dob | feild1 | feild2 | feild3 | feild4 | feild5 | feild6 | feild7 | feild8 | feild9 | feild10 | feild11
价值观:
本市道路通行状况|约希|帕卡什|约希| |一个fdf f | adf | saf | asf | |约希| m 124;11/25/2015 |一个fdf f f | adf 124;saf、asf 124;asf 124 124 | 124 |约瑟夫| | |一个fdf f f f f I | m | 10/25/2015 | a fdf | adf | saf | dfadf | sadf | asdf | ASDFDF | DFSFCED
我几乎被困在这一点上,有谁能帮我或给我指出正确的方向吗?

hgqdbh6s

hgqdbh6s1#

使用combineTest操作符,传递内部头和字段(据我所知,您将发出一个头和许多字段),并在函数传递逻辑中进行数据验证

Observable<Result> validationResultObservable = Observable.combineLatest(headers, feildValues, new Func2<String, String, Result>() {
            @Override
            public Result call(String header, String field) {
                // header always same
                // field always new
                // validate, create same kind of Result object or just a boolean
                Log.i("TEST_IT", "validationResultObservable emitted: " + header + " - " + field);
                return new Result(header, field);
            }
        });

相关问题