我正在使用 twitter4j 开发应用程序。我使用 DAO 将推文存储在一个文件中。
我做了一个StatusListener
类的实现:
public class StatusListenerStore implements StatusListener {
// DAO
private DAO<Status> m_statusDAO;
// Constructor
public StatusListenerStore(FactoryType a_factoryType,ArrayList<String> a_lanTrackList) {
super();
AbstractDAOFactory l_DAOFactory = AbstractDAOFactory.getFactory(a_factoryType);
m_statusDAO = l_DAOFactory.getTweetDAO();
}
}
调用的 DAO 是:
// Extract of my class
private static HadoopFileSystem m_hadoopFileSystem = null;
public TweetHADOOPDAO(){
m_hadoopFileSystem = new HadoopFileSystem(m_path+m_filename);
}
public void close(){
m_hadoopFileSystem.closeWriters();
}
HadoopFileSystem 包含OutputStream
我必须关闭。
首先,我的所有程序只需要一个 HadoopFileSystem 对象实例。static 关键字保证我?
接下来,要关闭我的输出流,我必须在流完成后调用 DAO 类中的 close 函数。我使用正确的shutdown()
功能关闭它。
但是该m_statusDAO
对象是在我的 StatusListener 类中声明的。当流关闭时,如何在此类中调用我的 close() 函数?