添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

输入流(InputStream)不会关闭,或者需要花费很长时间来关闭。

6 人关注

我正试图将外部MP3下载到内部存储中。然而,我试图下载的文件很大,所以我试图以1MB为单位进行下载,这样你就可以在下载其余的文件时开始播放它们。这是我的流代码。

    InputStream is = null;
    OutputStream os = null;
    try {
        HttpClient client = new DefaultHttpClient();
        HttpGet get = new HttpGet( url );
        HttpResponse response = client.execute( get );
        MyLog.d( "Connection established" );
        byte[] buffer = new byte[8192];
        is = new BufferedInputStream( response.getEntity().getContent(), buffer.length );
        os = openFileOutput( filename, MODE_PRIVATE );
        int size;
        int totalSize = 0;
        while (( size = is.read( buffer ) ) != -1 && totalSize < 1048576) {
            os.write( buffer, 0, size );
            totalSize += size;
        MyLog.d( "Finished downloading mix - " + totalSize + " bytes" );
    catch (ClientProtocolException e) {
        e.printStackTrace();
    catch (IOException e) {
        e.printStackTrace();
    finally {
        if ( os != null ) {
            try {
                os.flush();
                os.close();
            catch (IOException e) {
                MyLog.e( "Failed to close output stream." );
        if ( is != null ) {
            try {
                is.close();
            catch (IOException e) {
                MyLog.e( "Failed to close input stream." );