У меня есть база данных в mysql
с полем userId, userName etc,.
отсюда Я получаю userid
по некоторым критериям.сравнить имя файла с целым числом
У меня есть папка с файлами, а имя файла - userId
. Я хочу сравнить полученные userId
с этими файлами, и если они соответствуют дальнейшим процессам этих файлов.
Я пробовал этот код, но его исключение формата номера. не в состоянии понять, почему?
package read;
import java.io.*;
import java.util.*;
import java.sql.*;
public class read1 {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/test";
static final String USER = "root";
static final String PASS = "root";
public static void main(String args[])throws Exception{
Connection conn = null;
Statement stmt = null;
try{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql;
sql = "SELECT userId FROM profile1 where friendCount >200 AND statusCount > 200";
ResultSet rs = stmt.executeQuery(sql);
processing p = new processing();
File directory = new File("/home/abc/tweet");
//get all the files from a directory
File[] fList = directory.listFiles();
while(rs.next()){
int uid = rs.getInt("userId");
System.out.print("ID: " + uid +"\n");
for (File file : fList){
if(file.isFile())
System.out.println(file.getName());
if(Integer.parseInt(file.getName())== uid)
p.process(file.getName());
}
}
}
catch(SQLException e){
e.printStackTrace();
}
}
}
class processing{
void process(String filename)throws Exception{
FileReader fr = new FileReader("/home/abc/tweet/"+filename);
BufferedReader br = new BufferedReader(fr);
FileWriter wr = new FileWriter("/home/abc/newtweet/"+filename);
String s;
String str="Text:";
String a[];
BufferedWriter bw = new BufferedWriter(wr);
while ((s = br.readLine()) != null) {
if (s.startsWith("Text:")) { // worked
a= s.split(" ");
for(int k=1;k<a.length;k++)
bw.write(a[k]+"\n"); // worked
}
}
br.close();
bw.close();
}
}
Пожалуйста, добавьте полное исключение (включая стек вызовов) к своему сообщению. –
^Также выделите строку №. вызывающее исключение ... –
Мое лучшее предположение, что это оскорбительная строка: if (Integer.parseInt (file.getName()) uid). Вы можете захотеть окружить его блоком 'try-catch', чтобы уловить [' NumberFormatException'] (http://docs.oracle.com/javase/7/docs/api/java/lang/NumberFormatException.html) и пропустить такой имена файлов (если это то, что вы хотите). –