欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java实现分段读取文件并通过HTTP上传的方法

程序员文章站 2024-03-04 19:57:00
本文实例讲述了java实现分段读取文件并通过http上传的方法。分享给大家供大家参考。具体如下: 1、首先将文件分段,用randomaccessfile 2、分段后将...

本文实例讲述了java实现分段读取文件并通过http上传的方法。分享给大家供大家参考。具体如下:

1、首先将文件分段,用randomaccessfile
2、分段后将分出的内容上传到http

url url = new url(actionurl);
httpurlconnection con = (httpurlconnection) url.openconnection();
/** 允许input、output,不使用cache */
con.setdoinput(true);
con.setdooutput(true);
con.setusecaches(false);
/** 设定传送的method=post */
con.setrequestmethod("post");
/** setrequestproperty */
con.setrequestproperty("connection", "keep-alive");
con.setrequestproperty("charset", "utf-8");
con.setrequestproperty("content-type",
 "multipart/form-data;boundary=" + boundary);
/** 设定dataoutputstream */
dataoutputstream ds = new dataoutputstream(con.getoutputstream());
ds.writebytes(twohyphens + boundary + end);
ds.writebytes("content-disposition: form-data; "
 + "name=\"file1\";filename=\"" + newname + "\"" + end);
ds.writebytes(end);
/** 取得文件的fileinputstream */
fileinputstream fstream = new fileinputstream(uploadfile);
/** 设定每次写入1024bytes */
int buffersize = 1024;
byte[] buffer = new byte[buffersize];
int length = -1;
/** 从文件读取数据到缓冲区 */
while ((length = fstream.read(buffer)) != -1)
{
/** 将数据写入dataoutputstream中 */
ds.write(buffer, 0, length);
}
ds.writebytes(end);
ds.writebytes(twohyphens + boundary + twohyphens + end);
/** close streams */
fstream.close();
ds.flush();

希望本文所述对大家的java程序设计有所帮助。