首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rx-java创建两个文件并从字符串输入压缩它们

rx-java创建两个文件并从字符串输入压缩它们
EN

Stack Overflow用户
提问于 2020-03-20 01:54:50
回答 1查看 31关注 0票数 0

我需要编写一个函数来获取字符串作为输入,然后生成两个文件,并将它们压缩在一起。对于非响应式代码,它会:

代码语言:javascript
复制
void func(String input){
    byte[] a = generateFileForA(input);
    byte[] b = generateFileForB(input);
    byte[] zip = zipFiles(a,b);
    doSomethingWithZip(zip);
}

我如何使用rx-java以反应式的方式实现这样的逻辑?

EN

回答 1

Stack Overflow用户

发布于 2020-03-20 04:55:39

我不确定您的特定用例,也不确定使用Rx完成这项特定工作的好处(除了潜在地简化线程)。

然而,像这样的伪代码将会起作用:

代码语言:javascript
复制
public class Zip {

public static void main(String[] args) {

    final Zip zip = new Zip();
    final Disposable d = zip.func("some input")
            .subscribeOn(Schedulers.io())
            .observeOn(Schedulers.single())
            .subscribe(result -> { }, System.out::println);
}

Single<byte[]> func(String input) {
   return Single.zip(
           generate(input, new File("myFileA")), 
           generate(input, new File("myFileB")), 
           this::zipFiles);
}

private Single<byte[]> generate(String input, File output) {
    return Single.fromCallable(() -> {
        // Do Work
        return new byte[0];
    }).subscribeOn(Schedulers.io()); /* Parallel execution */
 }

private byte[] zipFiles(byte[] a, byte[] b) {

    // Do work
    return new byte[0];
}

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60762645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档