当前位置: 首页 > 知识库问答 >
问题:

使用Observables RxJava进行文件验证

轩辕源
2023-03-14

我正在尝试使用Rxjava解决一个经典的文件验证过程。我有一个带有正常标头的CSV文件和另一个标头列表,我需要验证它们是否属于所选数据类型或值是否为空。

我已经用普通java实现了这一点,但我想让我的验证代码更具反应性。这就是我到目前为止所取得的成就。

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个可观察对象要组合和验证,在验证失败的第一个实例(行)中。

以下是我想使用的示例数据

标题:

名字|姓|性别|出生|出生|出生|出生|出生|出生|出生|出生|出生|出生|出生|出生|出生|出生|出生|出生|出生|出生|出生|出生|出生|出生

价值观:

Prakash | joshi | M | 2015年11月25日| a fdf f | adf | saf | asf | dfadf | sadf | ASDFDFDF | asdf | DFSFDED Prakash | joshi | M | 2015年10月25日| a fdf f | adf | saf | asf | dfadf | dfadf |124; sadf | asdf | ASDFDF | asdf | DFSFDED Prakash | joshi | M | 2015年10月25日| a fdf f | adf | saf | asf | dfadf | sadf | asdf | asdf | DFSFDED

我几乎被困在这一点上,谁能帮我或给我指出正确的方向?

共有1个答案

宿淳
2023-03-14

使用组合最新运算符,在标头和字段中传递(据我所知,您将发出一个标头和许多字段),并在函数传递逻辑中进行数据验证

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);
            }
        });
 类似资料:
  • 我在理解OpenSSL的签名和验证过程时遇到了一些困难。 我有一个小型证书层次结构:根证书=>子证书=>结束实体证书。我想拥有来自最终实体CA的代码签名证书,因此创建了一个密钥对并请求CSR: 非常感谢。

  • 使用 GPG 进行 SSH 验证 技术上来讲的话,使用 GPG 来验证 SSH 会话并没有问题。但是 gpg-agent 对 ssh-agent 的支持并不友好。 相比而言更推荐使用 PIV 来进行 SSH 验证。 在 ~/.gnupg/gpg-agent.conf 文件下启用 enable-ssh-support 和 write-env-file : default-cache-ttl 600

  • 我正在尝试验证Json Objects。我使用https://code.google.com/p/rest-assured/wiki/Downloads?tm=2, greeter-schema.json:http://cs606926.vk.me/v606926718/15603/0Kauo1bTDi8.jpg 即使JsonString不等于这个“{\”isSuccess\“:false}”,我

  • 问题内容: 感谢使用此线程如何使用Java从Internet下载和保存文件? 我知道如何下载文件,现在的问题是我需要在我要下载的服务器上进行身份验证。这是Subversion服务器的http接口。我需要查询哪个领域? 使用最后一条评论中发布的代码,我得到了这个异常: 谢谢, 问题答案: 您扩展Authenticator类并进行注册。链接上的javadocs解释了如何。 我不知道这是否可以通过nio

  • 为了验证输入字段是否包含数值,我正在使用jQuery的isNumic()方法: 这在大多数情况下都可以正常工作,但以下示例失败了: 如果不是数值,则返回true。 有没有更好的方法在不使用任何其他插件的情况下进行此类验证? 谢谢。

  • 通过CXFendpoint中的模式验证,实现从CXFendpoint到JMS队列的驼峰路由。 已在CXF终结点中启用验证: 骆驼路线: CXF拦截器: 如果我发送有效的SOAP消息,则工作正常。如果我发送无效的SOAP消息,方法会启动,记录故障,仅此而已。对于无效的SOAP消息场景,我是否可以使用方法记录故障并仍然将无效消息路由到JMS队列?这是我添加到endpoint的唯一拦截器。 Apache