получение специальных символов при чтении файла слов с Google Drive - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь сохранить файл слова google drive локально на устройстве.Приведенный ниже код делает это, но для некоторого (.doc) файла слов получается специальный символ / ascii.

    InputStream inputStream = mActivity.getContentResolver().openInputStream(uri);
    BufferedReader reader = new BufferedReader(new InputStreamReader(
            inputStream));
    StringBuilder stringBuilder = new StringBuilder();
    String line;
    // FileInputStream fis;
    // fis = ((Activity)mActivity).openFileInput("test.txt");

    mTempFile = File.createTempFile("file", ".doc");
    FileOutputStream fos = new FileOutputStream(mTempFile);
    // FileOutputStream fos = ((Activity)mActivity).openFileOutput("resume.doc", Context.MODE_PRIVATE);
    while ((line = reader.readLine()) != null) {
        stringBuilder.append(line);
    }
    fos.write(stringBuilder.toString().getBytes());
    fos.flush();
    fos.close();
    reader.close();

Некоторые файлы читаются правильно, а некоторые - нет.Мое намерение состоит в том, чтобы загрузить файл на устройство и отправить его на сервер с помощью REST API в виде файла Multipart.

Любая помощь во избежание использования специальных символов высоко ценится.

1 Ответ

0 голосов
/ 29 мая 2018

Не пользователь (буферизованный) читателей.

Не использовать readLine ().

Не использовать StringBuilder.

Они предназначены только для текстовых файлов..Doc - это не простой текст.

Избавьтесь от них.

Просто создайте цикл для чтения фрагмента байтов из входного потока и затем непосредственно сохраните их в выходной поток файла.

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