Java Twitter流API获得100状态并停止执行

Java Twitter流API获得100状态并停止执行,java,twitter,twitter4j,Java,Twitter,Twitter4j,我正在使用twitter4j推特流API获取特定标签的推特。 我有很多关键词。我想搜索包含该标签的100条推文 目前,我正在做的是,我写了一个单词的推文代码 public class StreamAPI { public static void main(String[] args) { ConfigurationBuilder cb = new ConfigurationBuilder(); cb.setDebugEnabled(true);

我正在使用twitter4j推特流API获取特定标签的推特。 我有很多关键词。我想搜索包含该标签的100条推文 目前,我正在做的是,我写了一个单词的推文代码

public class StreamAPI {

    public static void main(String[] args) {

        ConfigurationBuilder cb = new ConfigurationBuilder();
        cb.setDebugEnabled(true);
        cb.setOAuthConsumerKey("xxxx");
        cb.setOAuthConsumerSecret("xxxxx");
        cb.setOAuthAccessToken("xxxx");
        cb.setOAuthAccessTokenSecret("xxxx");
        cb.setUseSSL(true);
        cb.setUserStreamRepliesAllEnabled(true);


        TwitterStream twitterStream = new TwitterStreamFactory(cb.build()).getInstance();


        twitterStream.setOAuthAccessToken(accestoken);
        StatusListener listener = new StatusListener() {
            int countTweets = 0;

            public void onStatus(Status status) {
                System.out.println("@" + status.getUser().getScreenName() + " - " + status.getText());
                countTweets++;
                System.out.println(countTweets);
            }

            public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) {
                System.out.println("Got a status deletion notice id:" + statusDeletionNotice.getStatusId());
            }

            public void onTrackLimitationNotice(int numberOfLimitedStatuses) {
                System.out.println("Got track limitation notice:" + numberOfLimitedStatuses);
            }

            public void onScrubGeo(long userId, long upToStatusId) {
                System.out.println("Got scrub_geo event userId:" + userId + " upToStatusId:" + upToStatusId);
            }

            @Override
            public void onStallWarning(StallWarning stallWarning) {
                //To change body of implemented methods use File | Settings | File Templates.
            }

            public void onException(Exception ex) {
                ex.printStackTrace();
            }
        };

        FilterQuery fq = new FilterQuery();
        String keywords[] = {"ipl"};

        fq.track(keywords);

        twitterStream.addListener(listener);
        twitterStream.filter(fq);

    }

}
当进程达到计数100并应将该100条tweet作为列表返回时,我将如何停止进程


请帮助我。

请参阅下面的代码,可能对您有帮助

String token= "Key Word";
Query query = new Query(token);
FileWriter outFile = new FileWriter(token.replaceAll("^#","").concat(".txt"), true);
int numberOfTweets = 1500;
long lastID = Long.MAX_VALUE;
ArrayList<Status> tweets = new ArrayList<Status>();
while (tweets.size () < numberOfTweets) {
if (numberOfTweets - tweets.size() > 100)
  query.setCount(100);
else 
 query.setCount(numberOfTweets - tweets.size());
try {
  QueryResult result = twitter.search(query);
 tweets.addAll(result.getTweets());
 System.out.println("Gathered " + tweets.size() + " tweets");
 for (Status t: tweets) 
   if(t.getId() < lastID) lastID = t.getId();  }
catch (TwitterException te) {
   System.out.println("Couldn't connect: " + te);  }; 
query.setMaxId(lastID-1);
}
PrintWriter out1 = new PrintWriter(outFile);
for (int i = 0; i < tweets.size(); i++) {
Status t = (Status) tweets.get(i);

GeoLocation loc = t.getGeoLocation();

String user = t.getUser().getScreenName();
String msg = t.getText();
String time = "";
if (loc!=null) {
 Double lat = t.getGeoLocation().getLatitude();
 Double lon = t.getGeoLocation().getLongitude();

 System.out.println(i + " USER: " + user + " wrote: " + msg + " located at " + lat +  ", " + lon);} 
 else 
 //  System.out.println(i + " USER: " + user + " wrote: " + msg.replaceAll("\n",""));
   out1.append(i + " USER: " + user + " wrote: " +msg.replaceAll("\n"," ")  );
   out1.print("\n");
} 
System.out.println("file write succefully");
String-token=“关键字”;
查询=新查询(令牌);
FileWriter outFile=newfilewriter(token.replaceAll(“^#“,”).concat(“.txt”),true);
int numberOfTweets=1500;
long lastID=long.MAX_值;
ArrayList tweets=新建ArrayList();
while(tweets.size()100)
query.setCount(100);
其他的
setCount(numberOfTweets-tweets.size());
试一试{
QueryResult result=twitter.search(查询);
addAll(result.getTweets());
System.out.println(“collected”+tweets.size()+tweets”);
对于(状态t:tweets)
如果(t.getId()