A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

lwl021051

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© lwl021051 初级黑马   /  2014-5-9 21:00  /  1386 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

為什麼InputStream skip() 沒有跑到我想要的位置再download~~ 請高手指教:)

  1. package com.example.download1;

  2. import java.io.File;
  3. import java.io.FileOutputStream;
  4. import java.io.InputStream;
  5. import java.net.URL;
  6. import java.net.URLConnection;

  7. import android.app.Activity;
  8. import android.app.Dialog;
  9. import android.app.ProgressDialog;


  10. import android.os.AsyncTask;
  11. import android.os.Bundle;
  12. import android.os.Environment;
  13. import android.util.Log;
  14. import android.view.View;
  15. import android.view.View.OnClickListener;
  16. import android.widget.Button;



  17. public class MainActivity extends Activity {
  18.         public static final int DIALOG_DOWNLOAD_PROGRESS = 0;
  19.     private Button startBtn;
  20.     private ProgressDialog mProgressDialog;
  21.    
  22.    
  23.     /** Called when the activity is first created. */
  24.     @Override
  25.     public void onCreate(Bundle savedInstanceState) {
  26.         super.onCreate(savedInstanceState);
  27.         setContentView(R.layout.activity_main);
  28.         checkAndCreateDirectory("/timecoolfree/");
  29.         
  30.         startBtn = (Button)findViewById(R.id.button1);
  31.         startBtn.setOnClickListener(new OnClickListener(){
  32.             public void onClick(View v) {
  33.               startDownload();
  34.             }
  35.         });
  36.     }
  37.     public void textz(long total,int count){
  38. }
  39.     public void checkAndCreateDirectory(String dirName){
  40.         File new_dir = new File( Environment.getExternalStorageDirectory() + dirName );
  41.         new_dir.getName();
  42.         
  43.         if( !new_dir.exists() ){
  44.             new_dir.mkdirs();
  45.         }
  46.     }
  47.    
  48.     private void startDownload() {
  49.         String url = "http://k007.kiwi6.com/hotlink/2ppi39j9w3/0430b.mp3";
  50.         new DownloadFileAsync().execute(url);
  51.     }
  52.     @Override
  53.     protected Dialog onCreateDialog(int id) {
  54.    return mProgressDialog;      
  55.     }

  56. class DownloadFileAsync extends AsyncTask<String, String, String> {
  57.    
  58. @Override
  59. protected void onPreExecute() {
  60.   super.onPreExecute();
  61. // showDialog(DIALOG_DOWNLOAD_PROGRESS);
  62.   
  63. }

  64. @Override
  65. protected String doInBackground(String... aurl) {

  66.   long aaa= 2000000;
  67.   URL url = null;
  68.   InputStream inputa = null;
  69. try {
  70.          FileOutputStream output = new FileOutputStream("/sdcard/timecoolfree/0430b.mp3");
  71. url = new URL(aurl[0]);
  72. URLConnection conexion = url.openConnection();
  73. inputa = conexion.getInputStream();

  74. inputa.skip(2000000);
  75.          
  76.          Log.d("aaaa", ""+inputa.skip(aaa));

  77. byte data[] = new byte[1024];
  78. long total = 0;
  79. int count;

  80.   while ((count = inputa.read(data)) >0) {
  81.    total += count;
  82.    output.write(data, 0, count);

  83.   }

  84.   output.flush();
  85.   output.close();
  86.   inputa.close();


  87.   
  88.   
  89.   
  90.   
  91.   }catch (Exception e) {}

  92. return null;

  93. }
  94. protected void onProgressUpdate(String... progress) {
  95.    Log.d("ANDRO_ASYNC",progress[0]);
  96. }

  97. @Override
  98. protected void onPostExecute(String unused) {

  99. }
  100. }

  101. }
  102.        
复制代码



2 个回复

倒序浏览
請高手幫幫我
回复 使用道具 举报


这是API中对skip方法的描述。你可以查看一下它返回的实际跳过字节数。

做下载的话,建议使用 RandomAccessFile 它里面有一个方法 seek() 可以设置文件的指针位置
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马