相关疑难解决方法(0)

将Java InputStream的内容写入OutputStream的简便方法

我惊讶地发现,今天,我不能追查任何简单的方法的内容写入InputStreamOutputStreamJava中.显然,字节缓冲区代码并不难写,但我怀疑我只是遗漏了一些会让我的生活更轻松(代码更清晰)的东西.

那么,给定一个InputStream in和一个OutputStream out,是否有更简单的方法来编写以下内容?

byte[] buffer = new byte[1024];
int len = in.read(buffer);
while (len != -1) {
    out.write(buffer, 0, len);
    len = in.read(buffer);
}
Run Code Online (Sandbox Code Playgroud)

java io stream

424
推荐指数
12
解决办法
41万
查看次数

广场`s OkHttp.下载进度

使用square`s OkHttp时有没有办法下载文件进度?

我没有在食谱中找到任何解决方案.

他们有类Call可以异步获取内容,但是没有方法可以获得当前的进展.

android android-networking okhttp

17
推荐指数
2
解决办法
1万
查看次数

如何使用 Retrofit 和 Kotlin 协程下载 PDF 文件?

我看到了诸如如何使用 Retrofit 库在 Android 中下载文件之类的主题,他们使用@Streaming和 RxJava / 回调。

我有 Kotlin、协程、改造 2.6.0 和/sf/answers/3953175411/ 中的查询:

@FormUrlEncoded
@Streaming
@POST("export-pdf/")
suspend fun exportPdf(
    @Field("token") token: String
): ExportResponse
Run Code Online (Sandbox Code Playgroud)

我有一个改造客户:

retrofit = Retrofit.Builder()
    .baseUrl(SERVER_URL)
    .client(okHttpClient)
    .build()

service = retrofit.create(Api::class.java)
Run Code Online (Sandbox Code Playgroud)

如果令牌参数正确,则查询返回 PDF 文件:

%PDF-1.4
%????
...
Run Code Online (Sandbox Code Playgroud)

如果出错,它将返回带有错误描述的 JSON:

{
    "success": 0,
    "errors": {
        "message": "..."
    }
}
Run Code Online (Sandbox Code Playgroud)

所以,ExportResponse 是一个包含 JSON 字段的数据类,POJO。

我无法访问文件数据

Response response = restAdapter.apiRequest();

try {
    //you can now get your file in the InputStream
    InputStream …
Run Code Online (Sandbox Code Playgroud)

android kotlin retrofit2 kotlin-coroutines

7
推荐指数
1
解决办法
1万
查看次数