package com.test;
import java.io.*;
import java.net.*;
import java.util.*;
import java.util.regex.*;
public class GetEmailDemo {
/**
* 测试方法;
*
* @param args
*/
public static void main(String[] args) {
GetEmailDemo emailDemo = new GetEmailDemo();
@SuppressWarnings("unused")
String error = emailDemo
.getWebContent("http://www.tradesns.com/forum_messages.php?mid=24877&ccid=5906");
System.out.println("邮件地址查找完成...");
}
/**
* 获得网页中的源代码; 逐行解析;
*
* @param path
* @return
*/
private String getWebContent(String path) {
BufferedReader bufferedReader = null;
StringBuffer sb = new StringBuffer();
if (path != null && !"".equals(path)) {
try {
URL url = new URL(path);
bufferedReader = new BufferedReader(new InputStreamReader(
url.openStream()));
String line = null;
System.out.println("开始分析邮件地址...");
String filePath = "e:/email/";
File file = new File(filePath);
if (!file.exists()) {
file.mkdir();
}
String str2 = "";
while ((line = bufferedReader.readLine()) != null) {
String str = parse(line);
if (!str.equals("")) {
str2 += str;
}
}
if (!str2.equals("")) {
String[] arrstr = str2.split(" ");
FileWriter fw = new FileWriter(filePath + "email.txt");
PrintWriter pw = new PrintWriter(fw);
//去重复
Set<String> set = new TreeSet<String>();
for (String i : arrstr) {
set.add(i);
}
String[] dest = new String[set.size()];
Iterator<String> iter = set.iterator();
for (int i = 0; i < dest.length && iter.hasNext(); i++) {
dest[i] = iter.next();
}
//输出
for (int i = 0; i < dest.length; i++) {
pw.write(dest[i] + "\n");
}
pw.close();
fw.close();
}
} catch (MalformedURLException e) {
e.printStackTrace();
sb.append(e.toString());
} catch (IOException e) {
e.printStackTrace();
sb.append(e.toString());
} finally {
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
sb.append(e.toString());
}
}
}
return sb.toString();
}
/**
* 分析数据;
*
* @param line
*/
private String parse(String line) {
String str = "";
if (line != null && line.length() > 0) {
// 邮箱正则表达式;
String regexExpression = "[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+";
Pattern pattern = Pattern.compile(regexExpression);
Matcher matcher = pattern.matcher(line);
try {
while (matcher.find()) {
String str2 = matcher.group();
if (!str2.equals("")) {
str += str2 + " ";
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
return str;
}
分享到:
相关推荐
总结来说,Java获取邮箱联系人库文件是一个涉及网络编程、HTML解析和网页模拟的复杂过程。借助如`flyerhzm-contactlist-855a71f`这样的工具库和辅助调试工具,如httpwatch,开发者可以更高效地完成这一任务。在实际...
假设您的Java Web Server为Tomcat,以Windows平台为例,Tomcat的存放目录为C:\Tomcat 5.5 ,JLoader.dll存放在c:\windows目录中,在Tomcat的bin目录中新建一个文件setenv.bat,setenv.bat中的内容:set JAVA_OPTS= ...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
BOX:Lotus Notes的邮箱文件 BPL:Borlard Delph 4打包库 BSP:Quake图形文件 BUN:CakeWalk 声音捆绑文件(一种MIDI程序) C C0l:台风波形文件 CAB:Microsoft压缩档案文件 CAD:Softdek的Drafix CAD文件 ...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
修改jdbc.properties和img.properties,其中jdbc.properties是数据库连接信息,img.properties是用户头像、分享介绍图片、分享代码压缩包文件存放路径设置文件。之后,部署运行tomcat服务器即可。
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
- `src`目录:源代码所在,分为`main`和可能的`test`目录,`main`下有`java`和`xml`目录,分别存放Java代码和XML布局文件。 - `AndroidManifest.xml`:定义应用的基本配置,包括权限、启动Activity等。 - `build....
- `classes`目录:存放编译后的Java类文件,包括Servlet和JavaBean。 - `lib`目录:存放项目依赖的库文件,如MySQL JDBC驱动。 - `jsp`目录:存放JSP文件,如login.jsp、register.jsp。 - `css`目录:存放CSS样式...
本文将详细讲解如何使用Java发送包含Web网页内容的邮件,以便收件人可以在邮箱中直接查看网页信息。 首先,我们需要了解Java Mail API(JavaMail API),这是一个用于处理邮件的开源库,提供了创建、发送和接收邮件...