java 读取远程文件 实现继传。。。
2011-08-16 17:30
579 查看
import java.io.BufferedInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.RandomAccessFile; import java.net.HttpURLConnection; import java.net.URL; public class TestGetFile { private boolean FileExist(String pathAndFile)// 确定文件是否已经下载,但没有下载完成 { File file = new File(pathAndFile); if (file.exists()) return true; else return false; } private long FileSize(String pathAndFile)// 确定已经下载了的文件大小 { File file = new File(pathAndFile); return file.length(); } public static void main(String[] args) { TestGetFile tgf = new TestGetFile(); URL url = null; HttpURLConnection ulc = null; DataOutputStream dos = null; BufferedInputStream bis = null; FileOutputStream fos = null; RandomAccessFile raFile = null; long TotalSize = 0;// 要下载的文件总大小 long fileSize = 0; // 当前文件大小 try { url = new URL("http://www.baidu.com"); ulc = (HttpURLConnection)url.openConnection(); String fileName = "g:/text.txt"; TotalSize = Long.parseLong(ulc.getHeaderField("Content-Length")); ulc.disconnect();// 先断开,下面再连接,否则下面会报已经连接的错误 ulc = (HttpURLConnection) url.openConnection(); if(tgf.FileExist(fileName)) { System.out.println("文件续传中..."); fileSize = tgf.FileSize(fileName); ulc.setRequestProperty("RANGE", "bytes=" + fileSize + "-"); // urlc.setRequestProperty("RANGE", // "bytes="+fileSize);//这样写不行,不能少了这个"-". // 设置接受信息 ulc.setRequestProperty( "Accept", "http://www.huomo.cn/developer/image/gif,image/x-xbitmap,application/msword,*/*"); raFile = new RandomAccessFile(fileName, "rw");// 随机方位读取 raFile.seek(fileSize);// 定位指针到fileSize位置 bis = new BufferedInputStream(ulc.getInputStream()); byte[] bt = new byte[1024]; int len = 0; while(-1!=(len = bis.read(bt))) { raFile.write(bt, 0, len); } } else { int len = 0;byte[] bt = new byte[1024]; fos = new FileOutputStream(fileName); // 没有下载完毕就将文件的扩展名命名.bak dos = new DataOutputStream(fos); bis = new BufferedInputStream(ulc.getInputStream()); System.out.println("正在接收文件..."); while ((len = bis.read(bt)) > 0)// 循环获取文件 { dos.write(bt, 0, len); } System.out.println("文件正常接收完毕!"); } if (bis != null) bis.close(); if (dos != null) dos.close(); if (fos != null) fos.close(); if (raFile != null) raFile.close(); } catch (Exception e) { e.printStackTrace(); } } }
相关文章推荐
- Java远程实现Linux文件内容读取.
- java实现远程文件的读取
- JAVA实现远程文件读取
- Http协议+java httpURLConnetion实现远程读取文件+chrome DEBUG Timing
- JAVA实现环形缓冲多线程读取远程文件
- JAVA实现远程文件读取!
- JAVA实现远程文件读取!
- java实现远程储存读取文件
- [Java]远程下载文件并读取实例方法
- java 利用SMB读取远程文件
- JAVA如何实现读取文件最后一行记录,在文件的结尾追加记录
- JAVA代码实现远程服务器的文件操作
- OpenSUSE Leap 42.3下通过Firefox Opera Chromium浏览器直接执行java应用程序(打开java jnlp文件)实现在服务器远程虚拟控制台完成远程管理的方法
- java实现读取txt文件并以在每行以空格取数据
- [Java]远程下载文件并读取实例方法
- Java读取大文件的高效率实现
- Java 实现导出excel表 POI/Java实现不同excel格式(*.xls、*.xlsx)文件的读取
- Java读取大文件的高效率实现
- [学习笔记]Java文件IO操作------实现对文件的读取与写入
- java实现读取文件夹下的文件并进行排序