明妍宁 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条)

报告相同问题?

悬赏问题

  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘