• 大小: 12KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: Java
  • 标签: java  p2p  socket  

资源简介

里面有几个文件还挺有用的,可以参考参考~~~~~~~~~~

资源截图

代码片段和文件信息

package com.huawei;

import java.io.BufferedInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;


/**
 * @author Terry
 * 待改进为多线程
 */
public class GetRemoteFile_Client_GoOn {

private static String remoteFilePath = “http://80.hb.jfsky.com/book/JXTJava-jfsky.rar“;
private static String localFilePath = “D:\\test.rar“;
    private static int BUFFER_SIZE = 8096;//缓冲区大小
    public final static boolean DEBUG = true;//调试用
    
//    private List downLoadList = new ArrayList();//URL列表
//   private List fileList = new ArrayList();//下载后的保存文件名列表

    
public GetRemoteFile_Client_GoOn() {
}

/**
 * 重置URL列表和要保存的文件名列表
 */
public void resetList(){
//downLoadList.clear();
//fileList.clear();
}

/**
 * 增加下载列表项
 */
public void addDownloadItem(String remoteUrlString localFileName){
// downLoadList.add(remoteUrl);
// fileList.add(localFileName);
}

/**
 * 确定是否存在没有下载完成的文件
 */
private boolean isExistFile(String path)
{
File file = new File(path);
if (file.exists())
return true;
else
return false;
}

/**
 * 确定已经下载了的文件大小
 */
private long FileSize(String path)
{
File file = new File(path);
return file.length();
}

/**
 * 将下载完全的文件更名,去掉.tp名
 */
private void FileRename(String fName String nName)
{
File file = new File(fName);
file.renameTo(new File(nName));
file.delete();
}

/**
 * 下载远程文件
 */
public static void downloadRemoteFile(){
URL url = null;
HttpURLConnection urlc = null;
DataOutputStream dos = null;
BufferedInputStream bis = null;
FileOutputStream fos = null;
//String localFile = “d:\\x.x“;//文件保存的地方及文件名,具体情况可以改
String localFile_bak = localFilePath + “.tp“;// 未下载完文件加.tp扩展名,以便于区别
GetRemoteFile_Client_GoOn gco = new GetRemoteFile_Client_GoOn();

long fileSize = 0;
long start = System.currentTimeMillis();
int len = 0;
byte[] bt = new byte[BUFFER_SIZE];
RandomAccessFile raFile = null;
long totalSize = 0;// 要下载的文件总大小

try {
url = new URL(remoteFilePath);
urlc = (HttpURLConnection) url.openConnection();
totalSize = Long.parseLong(urlc.getHeaderField(“Content-Length“));
if(DEBUG){
System.out.println(“下载文件大小为:“ + totalSize);
}

urlc.disconnect();// 先断开,下面再连接,否则下面会报已经连接的错误
urlc = (HttpURLConnection) url.openConnection();
// 确定文件是否存在
if (gco.isExistFile(localFile_bak))// 采用断点续传,这里的依据是看下载文件是否在本地有.tp有扩展名同名文件
{
System.out.println(“文件续传中...“);
fileSize = gco.FileSize(localFile_bak); // 取得文件大小,以便确定随机写入的位置
System.out.println(“fileSize:“ + fileSize);
// 设置User-Agent
// urlc.setRequestProperty(“User-Agent““NetFox“);
// 设置断点续传的开始位置
urlc

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5268  2009-08-08 00:01  com\huawei\GetRemoteFile_Client_GoOn.java

     文件       3761  2009-08-07 23:41  com\huawei\HttpReader.java

     文件        475  2009-08-07 23:45  com\huawei\IRandomAccess.java

     文件       1324  2009-08-08 00:30  com\huawei\JavaExecBat.java

     文件        183  2009-08-08 00:08  com\huawei\Test.java

     文件       2496  2009-08-11 22:15  com\huawei\socket\ServerTest.java

     文件       2530  2009-08-11 22:01  com\huawei\socket\ClientSocket.java

     文件       3065  2009-08-11 22:32  com\huawei\socket\ClientTest.java

     文件       2961  2009-08-11 22:31  com\huawei\socket2\Server.java

     文件       2772  2009-08-11 22:30  com\huawei\socket2\Client.java

     文件       6745  2009-08-11 22:33  com\huawei\thread.txt

     目录          0  2009-08-11 21:57  com\huawei\socket

     目录          0  2009-08-11 22:18  com\huawei\socket2

     目录          0  2009-08-07 23:03  com\huawei

     目录          0  2009-08-07 23:03  com

----------- ---------  ---------- -----  ----

                31580                    15


评论

共有 条评论