java实现分段读取文件并通过HTTP上传的方法
本文实例讲述了java实现分段读取文件并通过HTTP上传的方法。分享给大家供大家参考。具体如下:
1、首先将文件分段,用RandomAccessFile
2、分段后将分出的内容上传到http
URLurl=newURL(actionUrl);
HttpURLConnectioncon=(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*/
DataOutputStreamds=newDataOutputStream(con.getOutputStream());
ds.writeBytes(twoHyphens+boundary+end);
ds.writeBytes("Content-Disposition:form-data;"
+"name=\"file1\";filename=\""+newName+"\""+end);
ds.writeBytes(end);
/**取得文件的FileInputStream*/
FileInputStreamfStream=newFileInputStream(uploadFile);
/**设定每次写入1024bytes*/
intbufferSize=1024;
byte[]buffer=newbyte[bufferSize];
intlength=-1;
/**从文件读取数据到缓冲区*/
while((length=fStream.read(buffer))!=-1)
{
/**将数据写入DataOutputStream中*/
ds.write(buffer,0,length);
}
ds.writeBytes(end);
ds.writeBytes(twoHyphens+boundary+twoHyphens+end);
/**closestreams*/
fStream.close();
ds.flush();
希望本文所述对大家的java程序设计有所帮助。