Я запутался в файлах PDF - PullRequest
0 голосов
/ 25 февраля 2020

Если у меня есть такой код в PDF, скажем, что он недействителен и его нельзя открыть, но если я поменяю их местами и у меня будет B до A, он будет работать нормально? почему это и что я должен сделать, чтобы это работало? TIA

    InputStream in = new BufferedInputStream(conn.getInputStream());
    BufferedReader reader = new BufferedReader(new InputStreamReader(in));

//A
    String line = "";
                StringBuilder builder = new StringBuilder();
                try {
                    while ((line = reader.readLine()) != null) {
                        builder.append(line);
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }

//B
    File directory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
            File outputFile = new File(directory, "goo.pdf");
            FileOutputStream fos = null;
            try {
                fos = new FileOutputStream(outputFile);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            byte[] buffer = new byte[1024];
            int len1 = 0;//init length
            while (true) {
                try {
                    if (!((len1 = in.read(buffer)) != -1)) break;
                } catch (IOException e) {
                    e.printStackTrace();
                }
                try {
                    fos.write(buffer, 0, len1);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

1 Ответ

1 голос
/ 25 февраля 2020

InputStream может быть прочитан только один раз.

В 'A' поток читается, а содержимое помещается в StringBuilder.
В 'B' поток (теперь пустой) читается и передается в файл.
By Имея A первым, выходной файл всегда будет пустым.

Просто удалите A, так как он здесь ничего не делает для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...