
package cn.itcast.regex.test
import java.io.BufferedReader
import java.io.FileReader
import java.io.IOException
import java.io.InputStreamReader
import java.net.URL
import java.util.ArrayList
import java.util.List
import java.util.regex.Matcher
import java.util.regex.Pattern
/*
* 网页爬虫:其实就一个程序用于在互联网中获取符合指定规则的数据。
*
* 爬取邮箱地址。
*
*/
public class RegexTest2 {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
List<String> list = getMailsByWeb()
for(String mail : list){
System.out.println(mail)
}
}
public static List<String> getMailsByWeb() throws IOException {
//1,读取源文件。
// BufferedReader bufr = new BufferedReader(new FileReader("c:\\mail.html"))
URL url = new URL("http://tieba.baidu.com/p/2314539885")
BufferedReader bufIn = new BufferedReader(new InputStreamReader(url.openStream()))
//2,对读取的数据进行规则的匹配。从中获取符合规则的数据.
String mail_regex = "\\w+@\\w+(\\.\\w+)+"
List<String> list = new ArrayList<String>()
Pattern p = Pattern.compile(mail_regex)
String line = null
while((line=bufIn.readLine())!=null){
Matcher m = p.matcher(line)
while(m.find()){
//3,将符合规则的数据存储到集合中。
list.add(m.group())
}
}
return list
}
public static List<String> getMails() throws IOException{
//1,读取源文件。
BufferedReader bufr = new BufferedReader(new FileReader("c:\\mail.html"))
//2,对读取的数据进行规则的匹配。从中获取符合规则的数据.
String mail_regex = "\\w+@\\w+(\\.\\w+)+"
List<String> list = new ArrayList<String>()
Pattern p = Pattern.compile(mail_regex)
String line = null
while((line=bufr.readLine())!=null){
Matcher m = p.matcher(line)
while(m.find()){
//3,将符合规则的数据存储到集合中。
list.add(m.group())
}
}
return list
}
}
思路 思路 思路最重要~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
不就是修改 freemarker的文件么
先把文件读取到网页的 textarea 里
然后 修改完 提交修改后的文件内容
重新写到模板文件里
不就是这个样子的吗?
以下代码可以运行,注意,记得创建hello.txt文件,并在里面输入要加密的源文件!import java.io.*
public class SecretExample {
public static void main(String args[]) {
File fileOne = new File("hello.txt"), fileTwo = new File("hello.secret")
char b[] = new char[100]
try {
FileReader in = new FileReader(fileOne)// 创建指向fileOne的字符输入流
FileWriter out = new FileWriter(fileTwo)// 创建指向fileTwo字符输出流。
int n = -1
while ((n = in.read(b)) != -1) {
for (int i = 0i <ni++) {
b[i] = (char) (b[i] ^ 'a')
}
out.write(b, 0, n)// out将数组b的前n单元写到文件。
}
out.close()// out关闭。
in = new FileReader(fileTwo)// 创建指向fileTwo的字符输入流。
System.out.println("加密后的文件内容:")
while ((n = in.read(b)) != -1) {
String str = new String(b, 0, n)
System.out.println(str)
}
in = new FileReader(fileTwo)// 创建指向fileTwo的字符输入流。
System.out.println("解密后的文件内容:")
while ((n = in.read(b)) != -1) {
for (int i = 0i <ni++) {
b[i] = (char) (b[i] ^ 'a')
}
System.out.printf(new String(b, 0, n))
}
in.close()// in关闭。
} catch (IOException e) {
System.out.println(e)
}
}
}
申明:我是把楼主那个复制到Eclipse里面,修改后自己运行的,我根本就没有看你的回答。
还有,要说清楚,这个问题的答案只有一种!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)