2017-04-11 25 views
2

在我的应用我使用下面的代码返回输入流转换输入流中的文件的Android

QBContent.downloadFileById(fileId, new QBEntityCallback<InputStream>() { 
@Override 
public void onSuccess(final InputStream inputStream, Bundle params) { 
    long length = params.getLong(Consts.CONTENT_LENGTH_TAG); 
    Log.i(TAG, "content.length: " + length); 

    // use inputStream to download a file 
} 

@Override 
public void onError(QBResponseException errors) { 

} 
}, new QBProgressCallback() { 
@Override 
public void onProgressUpdate(int progress) { 

} 
}); 

现在我想隐蔽输入蒸汽进入文件,然后想做两件事情与该文件 1.如何我可以使用意图 笔记保存到用户的手机存储 2.保存它暂时的,显示的是PDF查看器:返回的文件将在PDF正式

+0

你有没有找到一个正确的解决方案? –

回答

0

您可以使用下面的代码保存在InputStream文件。

但是您需要传递文件路径以及要将文件存储在何处的位置。

InputStream inputStream = null; 
BufferedReader br = null; 

try { 
    // read this file into InputStream 
    inputStream = new FileInputStream("/Users/mkyong/Downloads/file.js"); 
    br = new BufferedReader(new InputStreamReader(inputStream)); 
    StringBuilder sb = new StringBuilder(); 

    String line; 
    while ((line = br.readLine()) != null) { 
     sb.append(line); 
    } 
    System.out.println(sb.toString()); 
    System.out.println("\nDone!"); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     if (inputStream != null) { 
      try { 
       inputStream.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
     if (br != null) { 
      try { 
       br.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
1

,如果你想在外部或内部存储来存储你没有mentionned,我写这个例子的内部存储

BufferedReader r = new BufferedReader(new InputStreamReader(inputStream)); 
StringBuilder total = new StringBuilder(); 
String line; 
while ((line = r.readLine()) != null) { 
    total.append(line).append('\n'); 
} 

try { 
    OutputStreamWriter outputStreamWriter = new OutputStreamWriter(context.openFileOutput("file.txt", Context.MODE_PRIVATE)); 
    outputStreamWriter.write(total.toString()); 
    outputStreamWriter.close(); 
} 
catch (IOException e) { 
    Log.e("Exception", "File write failed: " + e.toString()); 
} 

不要忘记使用try/catch和关闭哪些需要关闭