我在mysql数据库中存储了多个文本文件,并且需要检索它们以计算每个程序的每个结尾的一些功能,例如“white spaces,while of while loops”等。
我使用BLOB类型将文件保存在数据库中。这就是我检索文件的方式。但它只打印第一个文本文件,但不是全部.. rs.next不能作为循环工作,并显示其他文件内容。对于第一个文件,它运作良好。有人可以告诉我为什么会这样吗?
public class DbPersister {
private Connection conn;
public DbPersister(){
conn=DatabaseConnectionFactory.getConnection();
}
public void getTheFile(){
try {
Statement stmt=conn.createStatement();
String query="SELECT Prog_Num,File FROM file_details";
ResultSet rs=stmt.executeQuery(query);
while(rs.next()){
int prog_num=rs.getInt("Prog_Num");
String file= rs.getString("File");
System.out.println("////////////////////////////////////////"+prog_num+"//////////////////////////////////////////////////////");
FileReader fr=new FileReader(file);
BufferedReader bReader=new BufferedReader(fr);
while(bReader.readLine()!=null){
System.out.println(bReader.readLine());
}
}
} catch (SQLException ex) {
Logger.getLogger(DbPersister.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(DbPersister.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
我已将文件类型作为字符串。这是对的吗。文件可能非常大。