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程序设计有所帮助。