Java如何使用HTTPclient訪問url獲得數(shù)據(jù)
使用HTTPclient訪問url獲得數(shù)據(jù)
最近項(xiàng)目上有個(gè)小功能需要調(diào)用第三方的http接口取數(shù)據(jù),用到了HTTPclient,算是做個(gè)筆記吧!
1、使用get方法取得數(shù)據(jù)
/** * 根據(jù)URL試用get方法取得返回的數(shù)據(jù) * @param url * URL地址,參數(shù)直接掛在URL后面即可 * @return */ public static String getGetDateByUrl(String url){ String data = null; //構(gòu)造HttpClient的實(shí)例 HttpClient httpClient = new HttpClient(); //創(chuàng)建GET方法的實(shí)例 GetMethod getMethod = new GetMethod(url); //設(shè)置頭信息:如果不設(shè)置User-Agent可能會(huì)報(bào)405,導(dǎo)致取不到數(shù)據(jù) getMethod.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:39.0) Gecko/20100101 Firefox/39.0"); //使用系統(tǒng)提供的默認(rèn)的恢復(fù)策略 getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler()); try{ //開始執(zhí)行g(shù)etMethod int statusCode = httpClient.executeMethod(getMethod); if (statusCode != HttpStatus.SC_OK) { System.err.println("Method failed:" + getMethod.getStatusLine()); } //讀取內(nèi)容 byte[] responseBody = getMethod.getResponseBody(); //處理內(nèi)容 data = new String(responseBody); }catch (HttpException e){ //發(fā)生異常,可能是協(xié)議不對(duì)或者返回的內(nèi)容有問題 System.out.println("Please check your provided http address!"); data = ""; e.printStackTrace(); }catch(IOException e){ //發(fā)生網(wǎng)絡(luò)異常 data = ""; e.printStackTrace(); }finally{ //釋放連接 getMethod.releaseConnection(); } return data; }
2、使用POST方法取得數(shù)據(jù)
/** * 根據(jù)post方法取得返回?cái)?shù)據(jù) * @param url * URL地址 * @param array * 需要以post形式提交的參數(shù) * @return */ public static String getPostDateByUrl(String url,Map<String ,String> array){ String data = null; //構(gòu)造HttpClient的實(shí)例 HttpClient httpClient = new HttpClient(); //創(chuàng)建post方法的實(shí)例 PostMethod postMethod = new PostMethod(url); //設(shè)置頭信息 postMethod.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:39.0) Gecko/20100101 Firefox/39.0"); postMethod.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); //遍歷設(shè)置要提交的參數(shù) Iterator it = array.entrySet().iterator(); while (it.hasNext()){ Map.Entry<String,String> entry =(Map.Entry) it.next(); String key = entry.getKey(); String value = entry.getValue().trim(); postMethod.setParameter(key,value); } //使用系統(tǒng)提供的默認(rèn)的恢復(fù)策略 postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler()); try{ //執(zhí)行postMethod int statusCode = httpClient.executeMethod(postMethod); if (statusCode != HttpStatus.SC_OK) { System.err.println("Method failed:" + postMethod.getStatusLine()); } //讀取內(nèi)容 byte[] responseBody = postMethod.getResponseBody(); //處理內(nèi)容 data = new String(responseBody); }catch (HttpException e){ //發(fā)生致命的異常,可能是協(xié)議不對(duì)或者返回的內(nèi)容有問題 System.out.println("Please check your provided http address!"); data = ""; e.printStackTrace(); }catch(IOException e){ //發(fā)生網(wǎng)絡(luò)異常 data = ""; e.printStackTrace(); }finally{ //釋放連接 postMethod.releaseConnection(); } System.out.println(data); return data; }
使用httpclient后臺(tái)調(diào)用url方式
使用httpclient調(diào)用后臺(tái)的時(shí)候接收url類型的參數(shù)需要使用UrlDecoder解碼,調(diào)用的時(shí)候需要對(duì)參數(shù)使用UrlEncoder對(duì)參數(shù)進(jìn)行編碼,然后調(diào)用。
@SuppressWarnings("deprecation") @RequestMapping(value = "/wechatSigns", produces = "application/json;charset=utf-8") @ResponseBody public String wechatSigns(HttpServletRequest request, String p6, String p13) { Map<String, String> ret = new HashMap<String, String>(); try { System.out.println("*****************************************p6:"+p6); URLDecoder.decode(p13); System.out.println("*****************************************p13:"+p13); String p10 = "{\"p1\":\"1\",\"p2\":\"\",\"p6\":\"" + p6 + "\",\"p13\":\"" + p13 + "\"}"; p10 = URLEncoder.encode(p10, "utf-8"); String url = WebserviceUtil.getGetSignatureUrl() + "?p10=" + p10; String result = WebConnectionUtil.sendGetRequest(url); JSONObject fromObject = JSONObject.fromObject(URLDecoder.decode(result, "utf-8")); System.out.println(fromObject); String resultCode = JSONObject.fromObject(fromObject.getString("meta")).getString("result"); if ("0".equals(resultCode)) { JSONObject fromObject2 = JSONObject.fromObject(fromObject.get("data")); String timestamp = fromObject2.getString("timestamp"); String appId = fromObject2.getString("appId"); String nonceStr = fromObject2.getString("nonceStr"); String signature = fromObject2.getString("signature"); ret.put("timestamp", timestamp); ret.put("appId", appId); ret.put("nonceStr", nonceStr); ret.put("signature", signature); JSONObject jo = JSONObject.fromObject(ret); return ResultJsonBean.success(jo.toString()); } else { String resultMsg = JSONObject.fromObject(fromObject.getString("meta")).getString("errMsg"); return ResultJsonBean.fail(ConnectOauthCodeInfo.REQ_WECHATTOCKEN_CODE, resultMsg, ""); } } catch (Exception e) { logger.error(e, e); return ResultJsonBean.fail(ConnectOauthCodeInfo.REQ_WECHATREQERROE_CODE, ConnectOauthCodeInfo.REQ_WECHATREQERROE_CODE, ""); } }
<pre name="code" class="java">package com.dcits.djk.core.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSession; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import org.apache.http.HttpEntity; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.entity.mime.MultipartEntityBuilder; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import net.sf.json.JSONObject; public class WebConnectionUtil { public static String sendPostRequest(String url,Map paramMap,String userId){ CloseableHttpClient httpclient=null; CloseableHttpResponse response=null; try{ httpclient = HttpClients.createDefault(); HttpPost httppost = new HttpPost(url); List<NameValuePair> formparams = new ArrayList<NameValuePair>(); if(userId != null || "".equals(userId) ){ formparams.add(new BasicNameValuePair("userId",userId)); } Set keSet=paramMap.entrySet(); for(Iterator itr=keSet.iterator();itr.hasNext();){ Map.Entry me=(Map.Entry)itr.next(); Object key=me.getKey(); Object valueObj=me.getValue(); String[] value=new String[1]; if(valueObj == null){ value[0] = ""; }else{ if(valueObj instanceof String[]){ value=(String[])valueObj; }else{ value[0]=valueObj.toString(); } } for(int k=0;k<value.length;k++){ formparams.add(new BasicNameValuePair(key.toString(),StringUtil.filterSpecialChar(value[k]))); } } UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8"); httppost.setEntity(uefEntity); response = httpclient.execute(httppost); if(response.getStatusLine().getStatusCode() == 200){ HttpEntity entity = response.getEntity(); String resultInfo = EntityUtils.toString(entity, "UTF-8"); return resultInfo; }else{ return response.getStatusLine().getStatusCode() + ""; } }catch(Exception e){ e.printStackTrace(); }finally{ try { if(httpclient != null){ httpclient.close(); } } catch (Exception e) { e.printStackTrace(); } try { if(response != null){ response.close(); } } catch (Exception e) { e.printStackTrace(); } } return "404"; } public static String sendPostRequest(String url,Map paramMap){ CloseableHttpClient httpclient=null; CloseableHttpResponse response=null; try{ httpclient = HttpClients.createDefault(); HttpPost httppost = new HttpPost(url); List<NameValuePair> formparams = new ArrayList<NameValuePair>(); Set keSet=paramMap.entrySet(); for(Iterator itr=keSet.iterator();itr.hasNext();){ Map.Entry me=(Map.Entry)itr.next(); Object key=me.getKey(); Object valueObj=me.getValue(); String[] value=new String[1]; if(valueObj == null){ value[0] = ""; }else{ if(valueObj instanceof String[]){ value=(String[])valueObj; }else{ value[0]=valueObj.toString(); } } for(int k=0;k<value.length;k++){ formparams.add(new BasicNameValuePair(key.toString(),StringUtil.filterSpecialChar(value[k]))); } } UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8"); httppost.setEntity(uefEntity); response = httpclient.execute(httppost); if(response.getStatusLine().getStatusCode() == 200){ HttpEntity entity = response.getEntity(); String resultInfo = EntityUtils.toString(entity, "UTF-8"); return resultInfo; }else{ return response.getStatusLine().getStatusCode() + ""; } }catch(Exception e){ e.printStackTrace(); }finally{ try { if(httpclient != null){ httpclient.close(); } } catch (Exception e) { e.printStackTrace(); } try { if(response != null){ response.close(); } } catch (Exception e) { e.printStackTrace(); } } return "404"; } public static String downloadFileToImgService(String remoteUtl,String imgUrl,String tempUrl){ CloseableHttpClient httpclientRemote=null; CloseableHttpResponse responseRemote=null; CloseableHttpClient httpclientImg=null; CloseableHttpResponse responseImg=null; try{ httpclientRemote = HttpClients.createDefault(); HttpGet httpgetRemote = new HttpGet(remoteUtl); responseRemote = httpclientRemote.execute(httpgetRemote); if(responseRemote.getStatusLine().getStatusCode() != 200){ return ""; } HttpEntity resEntityRemote = responseRemote.getEntity(); InputStream isRemote = resEntityRemote.getContent(); //寫入文件 File file = null; boolean isDownSuccess = true; BufferedOutputStream bos = null; try{ BufferedInputStream bif = new BufferedInputStream(isRemote); byte bf[] = new byte[28]; bif.read(bf); String suffix = FileTypeUtil.getSuffix(bf); file = new File(tempUrl + "/" + UuidUtil.get32Uuid()+suffix); bos = new BufferedOutputStream(new FileOutputStream(file)); if(!file.exists()){ file.createNewFile(); } bos.write(bf, 0, 28); byte b[] = new byte[1024*3]; int len = 0; while((len=bif.read(b)) != -1){ bos.write(b, 0, len); } }catch(Exception e){ e.printStackTrace(); isDownSuccess = false; }finally{ try { if(bos != null){ bos.close(); } } catch (Exception e) { e.printStackTrace(); } } if(!isDownSuccess){ return ""; } httpclientImg = HttpClients.createDefault(); HttpPost httpPostImg = new HttpPost(imgUrl); MultipartEntityBuilder requestEntity = MultipartEntityBuilder.create(); requestEntity.addBinaryBody("userFile", file); HttpEntity httprequestImgEntity = requestEntity.build(); httpPostImg.setEntity(httprequestImgEntity); responseImg = httpclientImg.execute(httpPostImg); if(responseImg.getStatusLine().getStatusCode() != 200){ return ""; } HttpEntity entity = responseImg.getEntity(); String json = EntityUtils.toString(entity, "UTF-8"); json = json.replaceAll("\"",""); String[] jsonMap = json.split(","); String resultInfo = ""; for(int i = 0;i < jsonMap.length;i++){ String str = jsonMap[i]; if(str.startsWith("url:")){ resultInfo = str.substring(4); }else if(str.startsWith("{url:")){ resultInfo = str.substring(5); } } if(resultInfo.endsWith("}")){ resultInfo = resultInfo.substring(0,resultInfo.length()-1); } try{ if(file != null){ file.delete(); } }catch(Exception e){ e.printStackTrace(); } return resultInfo; }catch(Exception e){ e.printStackTrace(); }finally{ try { if(httpclientRemote != null){ httpclientRemote.close(); } } catch (Exception e) { e.printStackTrace(); } try { if(responseRemote != null){ responseRemote.close(); } } catch (Exception e) { e.printStackTrace(); } try { if(httpclientImg != null){ httpclientImg.close(); } } catch (Exception e) { e.printStackTrace(); } try { if(responseImg != null){ responseImg.close(); } } catch (Exception e) { e.printStackTrace(); } } return ""; } public static String downloadFileToImgService(File file,String imgUrl){ CloseableHttpClient httpclientImg=null; CloseableHttpResponse responseImg=null; try{ httpclientImg = HttpClients.createDefault(); HttpPost httpPostImg = new HttpPost(imgUrl); MultipartEntityBuilder requestEntity = MultipartEntityBuilder.create(); requestEntity.addBinaryBody("userFile", file); HttpEntity httprequestImgEntity = requestEntity.build(); httpPostImg.setEntity(httprequestImgEntity); responseImg = httpclientImg.execute(httpPostImg); if(responseImg.getStatusLine().getStatusCode() != 200){ return ""; } HttpEntity entity = responseImg.getEntity(); String json = EntityUtils.toString(entity, "UTF-8"); json = json.replaceAll("\"",""); String[] jsonMap = json.split(","); String resultInfo = ""; for(int i = 0;i < jsonMap.length;i++){ String str = jsonMap[i]; if(str.startsWith("url:")){ resultInfo = str.substring(4); }else if(str.startsWith("{url:")){ resultInfo = str.substring(5); } } if(resultInfo.endsWith("}")){ resultInfo = resultInfo.substring(0,resultInfo.length()-1); } return resultInfo; }catch(Exception e){ e.printStackTrace(); }finally{ try { if(httpclientImg != null){ httpclientImg.close(); } } catch (Exception e) { e.printStackTrace(); } try { if(responseImg != null){ responseImg.close(); } } catch (Exception e) { e.printStackTrace(); } } return ""; } public static String sendGetRequest(String url){ CloseableHttpClient httpclient=null; CloseableHttpResponse response=null; try{ httpclient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet(url); response = httpclient.execute(httpGet); if(response.getStatusLine().getStatusCode() == 200){ HttpEntity entity = response.getEntity(); String resultInfo = EntityUtils.toString(entity, "UTF-8"); return resultInfo; }else{ return response.getStatusLine().getStatusCode() + ""; } }catch(Exception e){ e.printStackTrace(); }finally{ try { if(httpclient != null){ httpclient.close(); } } catch (Exception e) { e.printStackTrace(); } try { if(response != null){ response.close(); } } catch (Exception e) { e.printStackTrace(); } } return "404"; } public static String sendHttpsPostRequestUseStream(String url,String param){ CloseableHttpClient httpclient=null; CloseableHttpResponse response=null; try{ SSLContext ctx = SSLContext.getInstance("TLS"); X509TrustManager xtm = new X509TrustManager() { public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public X509Certificate[] getAcceptedIssuers() { return null; } }; TrustManager[] tm = {xtm}; ctx.init(null,tm,null); HostnameVerifier hv = new HostnameVerifier(){ public boolean verify(String arg0, SSLSession arg1) { return true; } }; httpclient = HttpClients.custom().setSSLHostnameVerifier(hv).setSSLContext(ctx).build(); HttpPost httpPost = new HttpPost(url); StringEntity strEntity = new StringEntity(param,"utf-8"); httpPost.setEntity(strEntity); response = httpclient.execute(httpPost); if(response.getStatusLine().getStatusCode() == 200){ HttpEntity entity = response.getEntity(); String resultInfo = EntityUtils.toString(entity, "UTF-8"); return resultInfo; }else{ return response.getStatusLine().getStatusCode() + ""; } }catch(Exception e){ e.printStackTrace(); }finally{ try { if(httpclient != null){ httpclient.close(); } } catch (Exception e) { e.printStackTrace(); } try { if(response != null){ response.close(); } } catch (Exception e) { e.printStackTrace(); } } return "404"; } public static String sendHttpsPostRequestUseStream(String url,Map paramMap){ CloseableHttpClient httpclient=null; CloseableHttpResponse response=null; try{ SSLContext ctx = SSLContext.getInstance("TLS"); X509TrustManager xtm = new X509TrustManager() { public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public X509Certificate[] getAcceptedIssuers() { return null; } }; TrustManager[] tm = {xtm}; ctx.init(null,tm,null); HostnameVerifier hv = new HostnameVerifier(){ public boolean verify(String arg0, SSLSession arg1) { return true; } }; httpclient = HttpClients.custom().setSSLHostnameVerifier(hv).setSSLContext(ctx).build(); HttpPost httpPost = new HttpPost(url); List<NameValuePair> formparams = new ArrayList<NameValuePair>(); Set keSet=paramMap.entrySet(); for(Iterator itr=keSet.iterator();itr.hasNext();){ Map.Entry me=(Map.Entry)itr.next(); Object key=me.getKey(); Object valueObj=me.getValue(); String[] value=new String[1]; if(valueObj == null){ value[0] = ""; }else{ if(valueObj instanceof String[]){ value=(String[])valueObj; }else{ value[0]=valueObj.toString(); } } for(int k=0;k<value.length;k++){ formparams.add(new BasicNameValuePair(key.toString(),StringUtil.filterSpecialChar(value[k]))); } } UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8"); httpPost.setEntity(uefEntity); response = httpclient.execute(httpPost); if(response.getStatusLine().getStatusCode() == 200){ HttpEntity entity = response.getEntity(); String resultInfo = EntityUtils.toString(entity, "UTF-8"); return resultInfo; }else{ return response.getStatusLine().getStatusCode() + ""; } }catch(Exception e){ e.printStackTrace(); }finally{ try { if(httpclient != null){ httpclient.close(); } } catch (Exception e) { e.printStackTrace(); } try { if(response != null){ response.close(); } } catch (Exception e) { e.printStackTrace(); } } return "404"; } public static String sendHttpsGetRequestUseStream(String url){ CloseableHttpClient httpclient=null; CloseableHttpResponse response=null; try{ SSLContext ctx = SSLContext.getInstance("TLS"); X509TrustManager xtm = new X509TrustManager() { public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public X509Certificate[] getAcceptedIssuers() { return null; } }; TrustManager[] tm = {xtm}; ctx.init(null,tm,null); HostnameVerifier hv = new HostnameVerifier(){ public boolean verify(String arg0, SSLSession arg1) { return true; } }; httpclient = HttpClients.custom().setSSLHostnameVerifier(hv).setSSLContext(ctx).build(); HttpGet httpGet = new HttpGet(url); response = httpclient.execute(httpGet); if(response.getStatusLine().getStatusCode() == 200){ HttpEntity entity = response.getEntity(); String resultInfo = EntityUtils.toString(entity, "UTF-8"); return resultInfo; }else{ return response.getStatusLine().getStatusCode() + ""; } }catch(Exception e){ e.printStackTrace(); }finally{ try { if(httpclient != null){ httpclient.close(); } } catch (Exception e) { e.printStackTrace(); } try { if(response != null){ response.close(); } } catch (Exception e) { e.printStackTrace(); } } return "404"; } public static String sendHttpsPostRequestUseStreamForYZL(String url,OauthToken param){ CloseableHttpClient httpclient=null; CloseableHttpResponse response=null; try{ SSLContext ctx = SSLContext.getInstance("TLS"); X509TrustManager xtm = new X509TrustManager() { public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public X509Certificate[] getAcceptedIssuers() { return null; } }; TrustManager[] tm = {xtm}; ctx.init(null,tm,null); HostnameVerifier hv = new HostnameVerifier(){ public boolean verify(String arg0, SSLSession arg1) { return true; } }; httpclient = HttpClients.custom().setSSLHostnameVerifier(hv).setSSLContext(ctx).build(); HttpPost httpPost = new HttpPost(url); StringEntity strEntity = new StringEntity(param.toString(),"utf-8"); httpPost.setEntity(strEntity); httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded"); response = httpclient.execute(httpPost); if(response.getStatusLine().getStatusCode() == 200){ HttpEntity entity = response.getEntity(); String resultInfo = EntityUtils.toString(entity, "UTF-8"); return resultInfo; }else{ return response.getStatusLine().getStatusCode() + ""; } }catch(Exception e){ e.printStackTrace(); }finally{ try { if(httpclient != null){ httpclient.close(); } } catch (Exception e) { e.printStackTrace(); } try { if(response != null){ response.close(); } } catch (Exception e) { e.printStackTrace(); } } return "404"; } }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot整合dubbo設(shè)置全局唯一ID進(jìn)行日志追蹤的示例代碼
這篇文章主要介紹了springboot整合dubbo設(shè)置全局唯一ID進(jìn)行日志追蹤,本文通過圖文示例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10java 對(duì)象參數(shù)去空格方式代碼實(shí)例
這篇文章主要介紹了java 對(duì)象參數(shù)去空格方式代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10Java設(shè)計(jì)模式編程中的責(zé)任鏈模式使用示例
這篇文章主要介紹了Java設(shè)計(jì)模式編程中的責(zé)任鏈模式使用示例,責(zé)任鏈模式可以避免很多請(qǐng)求的發(fā)送者和接收者之間的耦合關(guān)系,需要的朋友可以參考下2016-05-05Spring如何通過注解引入外部資源(PropertySource?Value)
這篇文章主要為大家介紹了Spring通過注解@PropertySource和@Value引入外部資源的方法實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07淺談Java中@Autowired和@Inject注解的區(qū)別和使用場(chǎng)景
本文主要介紹了淺談Java中@Autowired和@Inject注解的區(qū)別和使用場(chǎng)景,@Autowired注解在依賴查找方式和注入方式上更加靈活,適用于Spring框架中的依賴注入,而@Inject注解在依賴查找方式上更加嚴(yán)格,適用于Java的依賴注入標(biāo)準(zhǔn),感興趣的可以了解一下2023-11-11Java實(shí)現(xiàn)文件分割和文件合并實(shí)例
本篇文章主要介紹了Java實(shí)現(xiàn)文件分割和文件合并實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08