日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

網(wǎng)絡(luò)文件或字符串獲取類(lèi)

張軍 6203 0
package zj.io.util;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Serializable;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

import zj.common.exception.ServiceException;
import zj.java.util.JavaUtil;

/**
 * 網(wǎng)絡(luò)文件或字符串獲取類(lèi)<br>
 * 
 * @version 1.00 (2011.12.02)
 * @author 張軍 {@link <a target=_blank href="http://www.sfpk123.com">張軍個(gè)人網(wǎng)站</a>&nbsp;&nbsp;&nbsp;&nbsp;<a target=_blank href="http://user.qzone.qq.com/360901061/">張軍QQ空間</a>}
 */
public class NetWorkUtil implements Serializable {
	private static final long serialVersionUID = 1L;
	// private transient static final Logger logger = Logger.getLogger(NetWorkUtil.class);

	/**
	 * 保存網(wǎng)絡(luò)文件
	 * 
	 * @param urlAddr
	 *            遠(yuǎn)程地址
	 * @param localAddr
	 *            本地地址
	 * @throws Exception
	 */
	public static void writeFileToLocalByURL(String urlAddr, String localAddr) {
		BufferedOutputStream bos = null;
		BufferedInputStream fis = null;
		try {
			// 以流的形式下載文件。
			URL urlObj = new URL(urlAddr);
			URLConnection uc = urlObj.openConnection();
			fis = new BufferedInputStream(uc.getInputStream());
			// 取得目標(biāo)文件路徑
			if (localAddr == null || localAddr.equals("")) {
				String[] paths = FileUtil.getFileNameExtension(urlAddr);
				if (paths.length > 2) {
					localAddr = paths[1] + paths[2];
				} else {
					File file = new File(urlAddr);
					localAddr = file.getName();
				}

			}
			// byte[] buffer = new byte[fis.available()];
			// fis.read(buffer);
			File fileDesc = new File(localAddr);

			String[] extension = FileUtil.getFileNameExtension(localAddr);
			File extensionFile = new File(extension[0]);
			if (!extensionFile.exists()) {
				extensionFile.mkdirs();
			}
			bos = new BufferedOutputStream(new FileOutputStream(fileDesc));
			int blen = 1024 * 5;
			byte[] b = new byte[blen];
			int len = 0;
			while ((len = fis.read(b, 0, blen)) != -1) {
				bos.write(b, 0, len);
			}
			bos.flush();
			// logger.info("下載【" + urlAddr + "】->【" + localAddr + "】成功");
		} catch (Exception e) {
			throw new ServiceException(e);
		} finally {
			if (bos != null) {
				try {
					bos.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
			if (fis != null) {
				try {
					fis.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		}

		// // 根據(jù)String形式創(chuàng)建一個(gè)URL對(duì)象,
		// URL url = new URL(urlAddr);
		// // 實(shí)列一個(gè)URLconnection對(duì)象,用來(lái)讀取和寫(xiě)入此 URL 引用的資源
		// URLConnection con = url.openConnection();
		// // 獲取一個(gè)輸入流
		// InputStream is = con.getInputStream();
		// BufferedInputStream bis = new BufferedInputStream(is);
		// // 實(shí)列一個(gè)輸出對(duì)象
		// FileOutputStream fos = new FileOutputStream(fileAddr);
		// BufferedOutputStream bos = new BufferedOutputStream(fos);
		// // 用來(lái)接收每次讀取的字節(jié)個(gè)數(shù)
		// int length = -1;
		// // 一個(gè)byte[]數(shù)組,一次讀取多個(gè)字節(jié)
		// byte[] buffer = new byte[7092];
		// // 循環(huán)判斷,如果讀取的個(gè)數(shù)b為空了,則is.read()方法返回-1,具體請(qǐng)參考InputStream的read();
		// while ((length = bis.read(buffer, 0, 7092)) != -1) {
		// // 將對(duì)象寫(xiě)入到對(duì)應(yīng)的文件中
		// bos.write(buffer, 0, length);
		// }
		// // 刷新流
		// bos.flush();
		// fos.flush();
		// // 關(guān)閉流
		// bos.close();
		// fos.close();
		// bis.close();
		// is.close();
	}

	/**
	 * 獲取網(wǎng)絡(luò)字符串 編碼默認(rèn)GB2312
	 * 
	 * @param url
	 *            遠(yuǎn)程地址
	 * @return 遠(yuǎn)程地址響應(yīng)結(jié)果
	 */
	public static String getStringByURL(String url) {
		return getStringByURL(url, "GB2312");
	}

	/**
	 * 獲取網(wǎng)絡(luò)字符串 編碼默認(rèn)GB2312
	 * 
	 * @author zhangjun
	 * @param url
	 *            遠(yuǎn)程地址
	 * @param encoding
	 *            網(wǎng)頁(yè)的編碼集
	 * @return 遠(yuǎn)程地址響應(yīng)結(jié)果
	 */
	public static String getStringByURL(String url, String encoding) {
		StringBuffer sb = new StringBuffer();
		// 建立文件寫(xiě)入流
		// 建立緩沖寫(xiě)入流
		BufferedReader br = null;
		try {
			// 建立網(wǎng)絡(luò)連接
			URL urlObj = new URL(url);
			// 打開(kāi)網(wǎng)絡(luò)連接
			URLConnection uc = urlObj.openConnection();
			// uc.setRequestProperty("User-Agent", "java");
			// 建立文件寫(xiě)入流
			// 建立緩沖寫(xiě)入流
			br = new BufferedReader(new InputStreamReader(uc.getInputStream(), encoding));
			String sLine = null;
			sLine = br.readLine();
			sLine = JavaUtil.readFirstLine(sLine);
			if (sLine != null) {
				sb.append(sLine);
				while ((sLine = br.readLine()) != null) {
					// 一邊讀,一邊寫(xiě)
					// sb.append(sLine + System.getProperty("line.separator"));
					sb.append(sLine);
				}
			}
		} catch (MalformedURLException e) {
			throw new ServiceException("連接網(wǎng)絡(luò)失敗", e);
		} catch (IOException e) {
			throw new ServiceException("打開(kāi)網(wǎng)絡(luò)連接失敗", e);
		} finally {
			if (br != null) {
				try {
					br.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		return sb.toString();
	}

}



更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 章丘市| 清远市| 新巴尔虎左旗| 临武县| 滨海县| 惠水县| 沁水县| 家居| 乌海市| 蓬莱市| 东安县| 出国| 江阴市| 中超| 呈贡县| 丽水市| 乌拉特后旗| 临洮县| 乌拉特中旗| 阿图什市| 兴化市| 咸宁市| 边坝县| 张家港市| 绥宁县| 堆龙德庆县| 平南县| 扎囊县| 灵山县| 寿光市| 天镇县| 汪清县| 额尔古纳市| 章丘市| 喀什市| 棋牌| 修水县| 呼玛县| 新民市| 慈利县| 凤台县|