用Java在网页上保存小说
来源:互联网 发布:淘宝二手市场入口 编辑:程序博客网 时间:2024/06/08 09:44
技术点:文件存储http访问正则表达式匹配当前系统时间文件结构:File--appeendFile.javaHttp--HttpRequest.javaMatches --RegexMatches.javaTime --currentTime.javatest.javarun.bat
appeendFile.java
package File;import java.io.File;import java.io.FileWriter;import java.io.BufferedWriter;import java.io.IOException;public class appeendFile { public static void fw(String fileName,String data) { try{ File file =new File(fileName); if(!file.exists()){ file.createNewFile(); } FileWriter fileWritter = new FileWriter(file.getName(),true);BufferedWriter bufferWritter = new BufferedWriter(fileWritter);bufferWritter.write(data);bufferWritter.close();System.out.println("fileWritter Done!"); }catch(IOException e){ e.printStackTrace(); } }}
HttpRequest.java
packageHttp;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.URL;import java.net.URLConnection;import java.util.List;import java.util.Map;public class HttpRequest { /** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return URL 所代表远程资源的响应结果 */ public static String sendGet(String url, String param) { String result = ""; BufferedReader in = null; try { String urlNameString = url + "?" + param; URL realUrl = new URL(urlNameString); // 打开和URL之间的连接 URLConnection connection = realUrl.openConnection(); // 设置通用的请求属性 connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive"); connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); // 建立实际的连接 connection.connect(); // 获取所有响应头字段 Map<String, List<string>> map = connection.getHeaderFields(); // 遍历所有的响应头字段 for (String key : map.keySet()) { System.out.println(key + "--->" + map.get(key)); } // 定义 BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader( connection.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("发送GET请求出现异常!" + e); e.printStackTrace(); } // 使用finally块来关闭输入流 finally { try { if (in != null) { in.close(); } } catch (Exception e2) { e2.printStackTrace(); } } return result; } /** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return 所代表远程资源的响应结果 */ public static String sendPost(String url, String param) { PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); // 打开和URL之间的连接 URLConnection conn = realUrl.openConnection(); // 设置通用的请求属性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // 获取URLConnection对象对应的输出流 out = new PrintWriter(conn.getOutputStream()); // 发送请求参数 out.print(param); // flush输出流的缓冲 out.flush(); // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("发送 POST 请求出现异常!"+e); e.printStackTrace(); } //使用finally块来关闭输出流、输入流 finally{ try{ if(out!=null){ out.close(); } if(in!=null){ in.close(); } } catch(IOException ex){ ex.printStackTrace(); } } return result; } }</string>
RegexMatches.java
package Matches;import java.util.regex.Matcher;import java.util.regex.Pattern;public class RegexMatches{ public static String rm (String line, String pattern){ String sum = ""; Pattern r = Pattern.compile(pattern); Matcher m = r.matcher(line); while (m.find()) { sum += m.group(); } return sum; }}
currentTime.java
package Time;import java.util.Date;import java.text.SimpleDateFormat;public class currentTime{public static String ct() { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");//设置日期格式return df.format(new Date());// new Date()为获取当前系统时间}}
test.java
import Http.HttpRequest;importFile.appeendFile;importMatches.RegexMatches;importTime.currentTime;public class test{public static void main(String[] args){String httpStr = HttpRequest.sendPost(args[0],"");String pattern = "<div id="\'content\'">(.*)</div>";httpStr = (new RegexMatches()).rm(httpStr,pattern);pattern = "[^\\x00-\\xff]";httpStr = (new RegexMatches()).rm(httpStr,pattern);appeendFile.fw(currentTime.ct()+".txt",httpStr);}}
run.bat
java test http://www.zhuaji.org/read/2471/985093.html
0 0
- 用Java在网页上保存小说
- java如何保存网页上的图片
- java下载并保存网页上的图片
- 怎么样用java在网页上悬挂自己的照片?
- 在一本小说上看到的
- JAVA在网页上抓取邮件地址
- java 保存网页
- python实现下载小说并保存在本地
- android、java把数组保存在sd上,写入读取!
- imageView显示保存在服务器的图片,不是网页上的图片
- listView显示保存在服务器的图片,不是网页上的图片
- 从网页中爬取小说内容并保存为文本文件的小程序
- 用Behaviors在网页中永久保存数据
- 在网页上用在线eclipse的视图观察Jar和Java源代码
- 用PHP将网页上的Canvas图像保存到服务器上的方法
- JSP调用Java Bean在网页上动态生成柱状图
- JSP调用Java Bean在网页上动态生成柱状图
- JSP调用Java Bean在网页上动态生成柱状图
- mui框架如何实现页面间传值
- Zabbix3.0邮件告警配置
- ajax封装练习
- DOM4J生成xml文件
- RHEL 软件包管理 rpm yum 源码编译
- 用Java在网页上保存小说
- chrome浏览器安装失败,已解决
- 1>LINK : fatal error LNK1561: 必须定义入口点
- Android组件----RelativeLayout相对布局的属性详解
- 成员函数及this指针的意义
- C++ delete 和delete[] 的区别
- Guava collections -- Maps
- Java面向对象小项目 慕课网Java入门第二季答答租车系统
- 定义AnimateWindow关闭