腾讯很聪明,之前获取QQ群里的QQ号的方法已不能用了http://blog.csdn.net/sinat_15153911/article/details/68937169,
于是群主又找了一个新方法:
http://qun.qq.com/member.html#gid=494808400
gid为Q群号
然后复制到QQ.txt文件中。格式如下:
字段分别对应如下:
序号(可不要)
Q名
Q号 性别 Q龄 加群时间 最后发言时间
java程序如下:
public static void readTxtFileForQQ3(String filePath,String search) throws Exception {
try {
String encoding="UTF-8";
File file=new File(filePath);
if(file.isFile() && file.exists()){
InputStreamReader read = new InputStreamReader(
new FileInputStream(file),encoding);
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
String qqName = "";
while((lineTxt = bufferedReader.readLine()) != null){
if(!lineTxt.equals("")){
if(!checkNumber(lineTxt.trim())){
if(lineTxt.length() > 20){
String[] lineTxts = lineTxt.split("\\s+");
Connection con = dbUtil.getConnection();
String sql = "insert into qqnum2 values(?,?,?,?,?,now(),1,?)";
PreparedStatement pstmt = con.prepareStatement(sql);
//id,name,qq,sex,age,creatime,status
pstmt.setString(1, UUID.randomUUID().toString());
pstmt.setString(2, qqName);
pstmt.setString(3, lineTxts[0]);
pstmt.setString(4, lineTxts[1]);
pstmt.setString(5, lineTxts[2]);
pstmt.setString(6, search);
int result = pstmt.executeUpdate();
dbUtil.closeResources(con, pstmt, null);
if(result==1){
System.out.println("添加成功!");
}else{
System.out.println("添加失败!");
}
}else{
qqName = new String(lineTxt.getBytes("gb2312"),"gbk");
}
}
}
}
read.close();
}else{
throw new Exception("找不到指定的文件");
}
} catch (Exception e) {
throw new Exception("读取文件内容出错");
}
}
解析:
if(!lineTxt.equals(“”)){ //判断这行是否非空
if(!checkNumber(lineTxt.trim())){ //判断这行是否为非数字,如果是数字,即是序号,序号不记录
if(lineTxt.length() > 20){ //然后剩下的是Q名和一大串字符串,然后判断Q名和大串字符串哪个长度大于20
String[] lineTxts = lineTxt.split(“\s+”); //大于20的则是一大串字符串,通过空格分割成Q号,性别,Q龄,后两个没什么用不做记录。
成功获取QQ号后存到数据库,然后为所欲为。。。
数据库的数据:
全CSDN的丰(好)色(se)博客,这里有书本看不到的Java技术,电影院禁播的电影,欢迎关注QQ群494808400