明妍宁 2019-07-08 16:14 采纳率: 62.5%
浏览 353
已采纳

多线程下载工具编译中出现错误 新手

import java.io.IOException;

import java.io InputStream;

import java.io RandomAccessFile;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

```public class DownUtil
{
private String path;

private  String  targetFile;

private  int  threadNum;

private   DownThread[]  threads;

private    int   fileSize;

public  DownUtil(String  path,String  targetFile,int  threadNum)

{

this.path=path;

this.threadNum = threadNum;


threads=new DownThread[threadNum];

this.targetFile = targetFile;

}

public void download() throws Exception
{
URL url = new URL(path);

 HttpURLConnection  conn=(HttpURLConnection)url.openConnection();

 conn.setConnectTimeout(5*1000);

 conn.setRequestMethod("GET");

 conn.setRequestProperty("Accept","image/gif,image/jpeg,image/pjpeg,image/pjpeg,"

+"application/x-shockwave-flash,application/xaml+xml,"
+"application/vnd.ms-xpsdocument,application/x-ms-xbap,"
+"application/x-ms-application,application/vnd.ms-excel,"
+"application/vnd.ms-powerpoint,application/msword,*/*");

 conn.setRequestProperty("Accept-Language","zh-CN");

 conn.setRequestProperty("Charset","UTF-8");

 conn.setRequestProperty("Connection","Keep-Alive");

 fileSize = conn.getContentLength();

 conn.disconnect();

 int currentPartSize=fileSize/threadNum+1;

 RandomAccessFile file = new RandomAccessFile(targetFile,"rw");

 file.setLength(fileSize);

 file.close();

 for(int i=0;i<threadNum;i++)

{
int startPos = i*currentPartSize;

 RandomAccessFile  currentPart=new RandomAccessFile(targetFile,"rw");

 currentPart.seek(startPos);

 threads[i] = new DownThread(startPos,currentPartSize,currentPart);

 threads[i].start();

}

}

public double getCompleteRate()
{
int sumSize=0;

  for(int i=0;i<threadNum;i++)

{
sumSize+=threads[i].Length;

}

  return  sumSize*1.0/fileSize;

}

  private  class  DownThread  extends Thread

{
private int startPos;

  private  int  currentPartSize;

  private  RandomAccessFile  currentPart;

  public int Length;

  public  DownThread(int  startPos,int currentPartSize,RandomAccessFile  currentPart)

{
this.startPos = startPos;

  this.currentPartSize = currentPartSize;

  this.currentPart = currentPart;

}

  public  void  run()

{

try
{
URL url = new URL(path);

       HttpURLConnection  conn = (HttpURLConnection)url.openConnection();

       conn.setConnectionTimeout(5*1000);

       conn.setRequestMethod("GET");

       conn.setRequestProperty("Accept",

       "image/gif,image/jpeg,image/pjpeg,image/pjpeg,"

+"application/x-shockwave-flash,application/xaml+xml,"
+"application/vnd.ms-xpsdocument,application/x-ms-xbap,"
+"application/x-ms-application,application/vnd.ms-excel,"
+"application/vnd.ms-powerpoint,application/msword,*/*");

      conn.setRequestProperty("Accept-Language","zh-CN");

      conn.setRequesProperty("Charset","UTF-8");

      InputStream  instream = conn.getInputStream();

      inStream.skip(this.startPos);

      byte[] buffer = new  byte[1024];

      int  hasRead=0;

      while(Length<currentPartSize&&(hasRead=inStream.read(buffer))!=-1)

{
currentPart.write(buffer,0,hasRead);

      Length+=hasRead;

}
currentPart.close();

      inStream.close();

}

      catch(Exception e)

{

e.printStackTrace();
}
}
}
}

编译时显示:
d:\documents>java -d . DownUtil.java

DownUtil:java:130错误:找不到符号
conn.setConnectionTimeout(5*1000);
符号:方法setConnectionTimeout(int)
位置:类型为HttpURLConnection的变量conn
DownUtil:java:144错误:找不到符号
conn.setRequestProperty("Charser","UTF-8");
符号:方法setRequestProperty(String,String);
位置:类型为HttpURLConnection的变量conn
DownUtil:java:148错误:找不到符号

inStream.skip(this.startPos);
符号:类inStream
位置:类DownUtil.DownThread
DownUtil:java:154错误:找不到符号

while(Length<currentPartSize&&(hasread=inStream.read(buffer))!=-1)
符号:类inStream
位置:类DownUtil.DownThread
DownUtil:java:162错误:找不到符号

inStream.close();
符号:类inStream
位置:类DownUtil.DownThread

5个错误

  • 写回答

4条回答

  • 毕小宝 博客专家认证 2019-07-09 10:27
    关注

    建议学习下使用 Eclipse或 IDEA 等 IDE ,那样方便很多,而且能快速定位编译错误的原因。
    纯手工用 java 命令和文本编辑器学习 Java 在熟练后再用感觉就会好多了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站