📅  最后修改于: 2023-12-03 15:41:47.510000             🧑  作者: Mango
本文介绍如何编写一个Java程序来读取给定文件中的所有电子邮件。我们将使用Java内置的文件读取API和正则表达式来解析电子邮件地址。
该程序将读取给定文件中的所有内容,并提取出所有有效的电子邮件地址。这些电子邮件地址将被存储在一个Java List对象中,并打印到控制台中。
String filename = "path/to/file.txt";
BufferedReader reader = new BufferedReader(new FileReader(filename));
String regex = "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b";
List<String> emails = new ArrayList<String>();
String line;
while ((line = reader.readLine()) != null) {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(line);
while (matcher.find()) {
String email = matcher.group();
emails.add(email);
}
}
for (String email : emails) {
System.out.println(email);
}
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ReadEmailsFromFile {
public static void main(String[] args) {
String filename = "path/to/file.txt";
List<String> emails = getEmailsFromFile(filename);
for (String email : emails) {
System.out.println(email);
}
}
public static List<String> getEmailsFromFile(String filename) {
List<String> emails = new ArrayList<String>();
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(filename));
String line;
String regex = "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b";
while ((line = reader.readLine()) != null) {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(line);
while (matcher.find()) {
String email = matcher.group();
emails.add(email);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return emails;
}
}
在此我们完成了一个简单的Java程序,它可以读取给定文件中的所有电子邮件地址。我们使用Java内置的文件读取API和正则表达式来解析电子邮件地址。这个程序可以为日常工作中需要处理大量电子邮件地址的程序员提供帮助。