温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

时间戳以及jsoup应用

发布时间:2020-06-11 18:50:06 来源:网络 阅读:1007 作者:ouy3xx 栏目:移动开发
以下是测试demo代码,可以下载附件自己测试
package com.example.androidtest;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.ByteArrayBuffer;
import org.apache.http.util.EncodingUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.widget.TextView;
import android.annotation.SuppressLint;
import android.os.Bundle;

public class MainActivity extends ActionBarActivity implements OnClickListener {

	private static final String SUDOKU_RANKING_TXT = "http://192.168.66.115:8080/sudoku/ranking.txt";
	URL myUrl;
	DataInputStream dis;
	View main;
	private Document doc;
	private TextView t1;

	@SuppressLint("NewApi")
	@Override
	public void onClick(View v) {
		int i = main.getSystemUiVisibility();
		if (i == View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) {
			main.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
		} else if (i == View.SYSTEM_UI_FLAG_VISIBLE) {
			main.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
		} else if (i == View.SYSTEM_UI_FLAG_LOW_PROFILE) {
			main.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
		}
	}

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		main = LayoutInflater.from(this).inflate(R.layout.activity_main, null);
		// main.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
		// main.setOnClickListener(this);
		setContentView(main);
		t1 = (TextView) findViewById(R.id.t1);
		eee();
//		WebView broser = new WebView(this);
	}

	private void ddd() {
		// try {
		// String spec = "http://www.sina.cn";
		// myUrl = new URL(spec);
		// dis = new DataInputStream(myUrl.openStream());
		// while (dis.readLine() != null) {
		// String readLine = dis.readLine();
		// System.out.println(readLine);
		// }
		// // getHtmlString(spec);
		// dis.close();
		// } catch (Exception e) {
		// System.out.println("Error");
		// }
		load();
		// SpannableString ss = new SpannableString("Click here to baidu.com");
		// ss.setSpan(new StyleSpan(Typeface.BOLD), 0, 6,
		// Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
		// ss.setSpan(new URLSpan("http://www.baidu.com"), 14, 23,
		// Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
		// t1.setMovementMethod(LinkMovementMethod.getInstance());
	}

	private void eee() {
		new Thread(new Runnable() {

			@Override
			public void run() {
				HttpClient httpClient = new DefaultHttpClient();
				HttpPost request;
				try {
					request = new HttpPost(SUDOKU_RANKING_TXT);
					HttpResponse response = httpClient.execute(request);
					if (response.getStatusLine().getStatusCode() == 200) {
						StringBuilder builder = new StringBuilder();
						BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
						String str2 = "";
						for (String s = reader.readLine(); s != null; s = reader.readLine()) {
							builder.append(s);
						}
						Log.i("TAG", "data :" + builder.toString());
						// 从网站获取信息
						try {
							String readParse = readParse(SUDOKU_RANKING_TXT);
							Log.e("tag", readParse);
							URL url = new URL(SUDOKU_RANKING_TXT);
							String string = getUrl(url);
							Log.e("tag", string);
						} catch (Exception e) {
							e.printStackTrace();
						}
					}
				} catch (Exception e) {
					e.printStackTrace();
				}

			}
		}).start();
	}

	/**
	 * 从指定的URL中获取数组
	 * 
	 * @param urlPath
	 * @return
	 * @throws Exception
	 */
	public static String readParse(String urlPath) throws Exception {
		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
		byte[] data = new byte[1024];
		int len = 0;
		URL url = new URL(urlPath);
		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
		InputStream inStream = conn.getInputStream();
		while ((len = inStream.read(data)) != -1) {
			outStream.write(data, 0, len);
		}
		inStream.close();
		return new String(outStream.toByteArray());// 通过out.Stream.toByteArray获取到写的数据
	}

	private String getUrl(URL url) {
		String str = null;
		try {
			URLConnection uc = url.openConnection();
			InputStream is = uc.getInputStream();
			BufferedInputStream bis = new BufferedInputStream(is);
			ByteArrayBuffer baf = new ByteArrayBuffer(2048);
			int cun = 0;
			while ((cun = bis.read()) != -1) {
				baf.append((byte) cun);
			}
			str = EncodingUtils.getString(baf.toByteArray(), "UTF-8");
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return str;
	}

	protected void load() {
		try {
			doc = Jsoup.parse(new URL("http://www.sina.cn"), 5000);
			Log.e("load", doc.toString());
		} catch (MalformedURLException e1) {
			e1.printStackTrace();
		} catch (IOException e1) {
			e1.printStackTrace();
		}
	}

	/**
	 * @param urlString
	 * @return
	 */
	public String getHtmlString(String urlString) {
		try {
			URL url = null;
			url = new URL(urlString);

			URLConnection ucon = null;
			ucon = url.openConnection();

			InputStream instr = null;
			instr = ucon.getInputStream();

			BufferedInputStream bis = new BufferedInputStream(instr);

			ByteArrayBuffer baf = new ByteArrayBuffer(500);
			int current = 0;
			while ((current = bis.read()) != -1) {
				baf.append((byte) current);
			}
			return EncodingUtils.getString(baf.toByteArray(), "gbk");
		} catch (Exception e) {
			return "";
		}
	}

	/**
	 * jsoup提取src路径,下载网站图片
	 * 
	 * @author Administrator
	 * 
	 */
	/*
	 * class DownImages { private static int COUNT = 0; private static int
	 * DOWN_COUNT = 0;
	 * 
	 * public static void jsoupHTML(String urlPath) throws Exception { Document
	 * doc = Jsoup.connect(urlPath).timeout(1000000).get(); // :当前页中的图片 Elements
	 * srcLinks = doc.select("img[src$=.jpg]"); for (Element link : srcLinks) {
	 * // :剔除标签,只剩链接路径 String p_w_picpathsPath = link.attr("src");
	 * System.out.println("当前访问路径:" + p_w_picpathsPath); getImages(p_w_picpathsPath,
	 * "d://p_w_picpaths//0000" + ++COUNT + ".jpg"); }
	 * 
	 * // :提取网站中所有的href连接 Elements linehrefs = doc.select("a[href]");
	 * 
	 * for (Element linehref : linehrefs) { String lihr = linehref.attr("href");
	 * if (lihr.length() > 4) { String ht = lihr.substring(0, 4); String htt =
	 * lihr.substring(0, 1); if (!ht.equals("http") && htt.equals("/")) { lihr =
	 * urlPath + lihr; } if (lihr.substring(0, 4).equals("http")) { Document
	 * docs = Jsoup.connect(lihr).timeout(1000000).get(); Elements links =
	 * docs.select("img[src$=.jpg]"); for (Element link : links) { //
	 * :剔除标签,只剩链接路径 String p_w_picpathsPath = link.attr("src");
	 * System.out.println("当前访问路径:" + p_w_picpathsPath); getImages(p_w_picpathsPath,
	 * "d://p_w_picpaths//0000" + COUNT++ + ".jpg"); } } } } }
	 *//**
	 * @param urlPath
	 *            图片路径
	 * @throws Exception
	 */
	/*
	 * public static void getImages(String urlPath, String fileName) throws
	 * Exception { URL url = new URL(urlPath);// :获取的路径 // :http协议连接对象
	 * HttpURLConnection conn = (HttpURLConnection) url.openConnection();
	 * conn.setRequestMethod("GET"); conn.setReadTimeout(6 * 10000); if
	 * (conn.getResponseCode() < 10000) { InputStream inputStream =
	 * conn.getInputStream(); byte[] data = readStream(inputStream); if
	 * (data.length > (1024 * 10)) { FileOutputStream outputStream = new
	 * FileOutputStream(fileName); outputStream.write(data);
	 * System.err.println("第" + ++DOWN_COUNT + "图片下载成功"); outputStream.close();
	 * } }
	 * 
	 * }
	 *//**
	 * 读取url中数据,并以字节的形式返回
	 * 
	 * @param inputStream
	 * @return
	 * @throws Exception
	 */
	/*
	 * public static byte[] readStream(InputStream inputStream) throws Exception
	 * { ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
	 * byte[] buffer = new byte[1024]; int len = -1; while ((len =
	 * inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, len); }
	 * outputStream.close(); inputStream.close(); return
	 * outputStream.toByteArray(); }
	 * 
	 * public static void main(String[] args) { try { String urlPath =
	 * "http://www.22mm.cc/"; jsoupHTML(urlPath); } catch (Exception e) {
	 * e.printStackTrace(); } finally { System.out.println("共访问" + COUNT +
	 * "张图片,其中下载" + DOWN_COUNT + "张图片"); } } }
	 * 
	 * 
	 * jsoup httpclient 爬取网页并下载google图标
	 * 
	 * 博客分类: java jsouphttpclient jsoup下载地址 http://www.jsoup.org httpclient下载地址
	 * http://hc.apache.org/downloads.cgi 其他jar包见附件
	 *//**
	 * google logo 下载程序
	 */
	/*
	 * public abstract class Crawler {
	 *//**
	 * 使用google 翻译api
	 * 
	 * @param en
	 * @return
	 */
	/*
	 * public String translateEnToCinese(String en) {
	 * Translate.setHttpReferrer("http://www.xxx.com"); try { return
	 * Translate.execute(en, Language.ENGLISH, Language.CHINESE); } catch
	 * (Exception e) { e.printStackTrace(); } return ""; }
	 *//**
	 * 获取一个Map
	 * 
	 * @return
	 */
	final String ENCORDING = "UTF-8";

	public boolean upload(String filepath) throws Exception {
		String boundary = "---------------------------7db1c523809b2";// +java.util.UUID.randomUUID().toString();//
		// 分割线
		File file = new File(filepath);

		String fileName = new String("哈哈嗨".getBytes(), "ISO-8859-1");
		// 用来解析主机名和端口
		URL url = new URL("http://192.168.1.120/dev/index.php/Device/UploadFile?filename=" + fileName + "&filetype=IMAGE");
		// 用来开启连接
		StringBuilder sb = new StringBuilder();
		// 用来拼装请求

		/*
		 * // username字段 sb.append("--" + boundary + "\r\n");
		 * sb.append("Content-Disposition: form-data; name=\"username\"" +
		 * "\r\n"); sb.append("\r\n"); sb.append(username + "\r\n");
		 * 
		 * // password字段 sb.append("--" + boundary + "\r\n");
		 * sb.append("Content-Disposition: form-data; name=\"password\"" +
		 * "\r\n"); sb.append("\r\n"); sb.append(password + "\r\n");
		 */

		// 文件部分
		sb.append("--" + boundary + "\r\n");
		sb.append("Content-Disposition: form-data; name=\"file\"; filename=\"" + filepath + "\"" + "\r\n");
		sb.append("Content-Type: application/octet-stream" + "\r\n");
		sb.append("\r\n");

		// 将开头和结尾部分转为字节数组,因为设置Content-Type时长度是字节长度
		byte[] before = sb.toString().getBytes(ENCORDING);
		byte[] after = ("\r\n--" + boundary + "--\r\n").getBytes(ENCORDING);

		// 打开连接, 设置请求头
		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
		conn.setConnectTimeout(10000);
		conn.setRequestMethod("POST");
		conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
		conn.setRequestProperty("Content-Length", before.length + file.length() + after.length + "");

		conn.setDoOutput(true);
		conn.setDoInput(true);

		// 获取输入输出流
		OutputStream out = conn.getOutputStream();
		FileInputStream fis = new FileInputStream(file);
		// 将开头部分写出
		out.write(before);

		// 写出文件数据
		byte[] buf = new byte[1024 * 5];
		int len;
		while ((len = fis.read(buf)) != -1)
			out.write(buf, 0, len);

		// 将结尾部分写出
		out.write(after);

		InputStream in = conn.getInputStream();
		InputStreamReader isReader = new InputStreamReader(in);
		BufferedReader bufReader = new BufferedReader(isReader);
		String line = null;
		String data = "getResult=";
		while ((line = bufReader.readLine()) != null)
			data += line;
		Log.e("fromServer", "result=" + data);
		boolean sucess = conn.getResponseCode() == 200;
		in.close();
		fis.close();
		out.close();
		conn.disconnect();

		return sucess;
	}

	/*
	 * public Map<String, Object> getMap() { return new HashMap<String,
	 * Object>(0); }
	 *//**
	 * 下载文件
	 * 
	 * @param url
	 *            文件http地址
	 * @param dir
	 *            目标文件
	 * @throws IOException
	 */
	/*
	 * public void downloadFile(String url, String dir) throws Exception {
	 * DefaultHttpClient httpClient = new DefaultHttpClient();
	 * HttpProtocolParams.setUserAgent(httpClient.getParams(),
	 * "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9"
	 * ); HttpGet httpGet = new HttpGet(); httpGet.setURI(new
	 * java.net.URI(url));
	 * 
	 * InputStream input = null; FileOutputStream output = null; try {
	 * HttpResponse response = httpClient.execute(httpGet); HttpEntity entity =
	 * response.getEntity(); input = entity.getContent(); File file = new
	 * File(dir); output = FileUtils.openOutputStream(file); IOUtils.copy(input,
	 * output); } catch (Exception e){ e.printStackTrace(); } finally {
	 * IOUtils.closeQuietly(output); IOUtils.closeQuietly(input); } }
	 */

	/**
	 * 处理GET请求,返回整个页面
	 * 
	 * @param url
	 *            访问地址
	 * @param params
	 *            编码参数
	 * @return
	 * @throws Exception
	 */
	/*
	 * public synchronized String doGet(String url, String... params) throws
	 * Exception { DefaultHttpClient httpClient = new DefaultHttpClient(); //
	 * 创建httpClient实例 HttpProtocolParams.setUserAgent(httpClient.getParams(),
	 * "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9"
	 * ); String charset = "UTF-8"; if (null != params && params.length >= 1) {
	 * charset = params[0]; } HttpGet httpGet = new HttpGet(); // 创建get方法实例
	 * String content = ""; httpGet.setURI(new java.net.URI(url)); try {
	 * HttpResponse response = httpClient.execute(httpGet); // 执行请求,得到response对象
	 * int resStatu = response.getStatusLine().getStatusCode(); // 得到返回的状态码 if
	 * (resStatu == HttpStatus.SC_OK) { // 200正常 HttpEntity entity =
	 * response.getEntity(); // 获得相应的实体 if (entity != null) { //
	 * 使用EntityUtils的toString方法,传递默认编码,在EntityUtils中的默认编码是ISO-8859-1 content =
	 * EntityUtils.toString(entity, charset); } } } catch (Exception e) {
	 * System.out.println("访问【" + url + "】出现异常!"); e.printStackTrace(); }
	 * finally { // 关闭资源 httpGet.abort();
	 * httpClient.getConnectionManager().shutdown(); } return content; } }
	 *//**
	 * google logo 下载程序
	 */
	/*
	 * public class GoogleLogoCrawler extends Crawler {
	 * 
	 * private static final String URL =
	 * "http://www.logocollect.com/google/year.php?key=%y&page=%p";
	 * 
	 * private static final String LOGO_URL =
	 * "http://www.logocollect.com/google/";
	 * 
	 * private static final String[] YEARS = new String[] { //"1998", "1999",
	 * "2000", //"2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008",
	 * "2009", "2010", "2011", "2012" };
	 * 
	 * private static final String INDEX =
	 * "http://www.logocollect.com/google/year.php?key=%y";
	 * 
	 * private static final String DIR_PATH = "D:\\googlelogos\\";
	 * 
	 * public void doStart() { JSONArray array = new JSONArray(); for (String
	 * year : YEARS) { String ind = INDEX.replaceAll("%y", year); int pageCount
	 * = getPageCount(ind); for (int i = 1; i < pageCount+1; i++) { String url =
	 * URL.replaceAll("%y", year).replaceAll("%p", i + ""); String path = year +
	 * "_" + i; start(url, array, DIR_PATH + path + "\\", path); } } try {
	 * FileUtils.writeStringToFile(new File(DIR_PATH + "json"),
	 * array.toString(), "UTF-8"); } catch (IOException e) {
	 * e.printStackTrace(); } System.out.println(array); }
	 * 
	 * public int getPageCount(String url) { int pageCount = 1; try {
	 * org.jsoup.nodes.Document doc = Jsoup.connect(url).get();
	 * 
	 * String els = doc.html().toString(); int start = els.indexOf("总页数") + 4;
	 * String temp = els.substring(start); int end = temp.indexOf(",");
	 * pageCount = Integer.parseInt(els.substring(start,start+end));
	 * System.out.println(pageCount); } catch (IOException e) {
	 * e.printStackTrace(); } return pageCount; }
	 * 
	 * public void start(String url, JSONArray array, String dir, String path) {
	 * try { String content = super.doGet(url); Document doc =
	 * Jsoup.parse(content); Elements dds = doc.select(".img img");
	 * List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(0);
	 * for (int i = 0; i < dds.size(); i++) { Element img = dds.get(i); String
	 * src = img.select("img").first().attr("src"); String title =
	 * img.select("img").first().attr("title"); Map<String, Object> map =
	 * super.getMap();
	 * 
	 * map.put("url", LOGO_URL + src); map.put("title", title);
	 * 
	 * list.add(map); } JSONArray tempJsonArray = new JSONArray(); for
	 * (Map<String, Object> map : list) { JSONObject jsonObject = new
	 * JSONObject(); String proxy =
	 * StringUtils.substringAfterLast(map.get("url") .toString(), "."); long
	 * date = new Date().getTime(); String name = date + "." + proxy;
	 * jsonObject.put("url", map.get("url").toString()); jsonObject.put("dir",
	 * name); jsonObject.put("title", map.get("title").toString());
	 * 
	 * // 翻译 // String dateZh = super.translateEnToCinese(map.get("date") //
	 * .toString()); // String titleZh =
	 * super.translateEnToCinese(map.get("title") // .toString()); //
	 * json.put("title_zh_cn", dateZh + " - " + titleZh);
	 * 
	 * // 下载图片 super.downloadFile(map.get("url").toString(), dir + name);
	 * tempJsonArray.put(jsonObject); } array.put(new JSONObject().put(path,
	 * tempJsonArray)); } catch (Exception e) { e.printStackTrace(); } }
	 * 
	 * public static void main(String[] args) throws Exception { new
	 * GoogleLogoCrawler().doStart(); }
	 * 
	 * }
	 */
}
package com.example.androidtest;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

/***
 * 工具类,检查当前网络状态
 * 
 * @author shuimu
 * 
 */
public class NetUtil {

	public static boolean checkNet(Context context) {

		// 获取手机所以连接管理对象(包括wi-fi,net等连接的管理)

		ConnectivityManager conn = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
		if (conn != null) {
			// 网络管理连接对象
			NetworkInfo info = conn.getActiveNetworkInfo();

			if (info != null && info.isConnected()) {
				// 判断当前网络是否连接
				if (info.getState() == NetworkInfo.State.CONNECTED) {
					return true;
				}
			}

		}

		return false;
	}
}
package com.example.androidtest;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
/**
 * 时间戳工具类
 * @author Administrator
 *
 */
public class GetTimeUtil {

	public static String getDate(String year, String month, String day) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 24小时制
		java.util.Date d = new java.util.Date();
		;
		String str = sdf.format(d);
		String nowyear = str.substring(0, 4);
		String nowmonth = str.substring(5, 7);
		String nowday = str.substring(8, 10);
		String result = null;

		int temp = Integer.parseInt(nowday) - Integer.parseInt(day);
		StringBuilder sb = new StringBuilder();
		sb.append(Integer.parseInt(year) + "年");
		sb.append(Integer.parseInt(month) + "月");
		sb.append(Integer.parseInt(day) + "日");
		result = sb.toString();
		return result;
	}

	public static String getTime(int timestamp) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String time = null;
		try {
			java.util.Date currentdate = new java.util.Date();// 当前时间

			long i = (currentdate.getTime() / 1000 - timestamp) / (60);
			System.out.println(currentdate.getTime());
			System.out.println(i);
			Timestamp now = new Timestamp(System.currentTimeMillis());// 获取系统当前时间
			System.out.println("now-->" + now);// 返回结果精确到毫秒。

			String str = sdf.format(new Timestamp(IntToLong(timestamp)));
			time = str.substring(11, 16);

			String year = str.substring(0, 4);
			String month = str.substring(5, 7);
			String day = str.substring(8, 10);
			System.out.println(str);
			System.out.println(time);
			System.out.println(getDate(year, month, day));
			time = getDate(year,month, day);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return time;
	}

	// java Timestamp构造函数需传入Long型
	public static long IntToLong(int i) {
		long result = (long) i;
		result *= 1000;
		return result;
	}

	public static void main(String[] args) {
		int timestamp = 1421856000; // 假设腾讯微博返回时间戳为秒
		String time = GetTimeUtil.getTime(timestamp);
		System.out.println("timestamp-->" + time);
		// print timestamp-->7月12日15:59
	}

}

已经上传项目附件

附件:http://down.51cto.com/data/2365513
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI