gpt4 book ai didi

java - 定期读取InputStream

转载 作者:行者123 更新时间:2023-12-02 05:45:44 25 4
gpt4 key购买 nike

我的 AsyncTask 中有一个输入流 - 它来自具有retrieveFileStream 方法的 FTP 服务器,并且仅包含一行 - 我想定期读取同一个文件,例如每 30 秒一次。我只能读取该文件一次,但我不知道如何定期执行该操作。这是我的代码的一次阅读部分:

ftpClient.connect("f11-preview.125mb.com", 21);
System.out.println(ftpClient.getReplyString());
ftpClient.enterLocalPassiveMode();
System.out.println(ftpClient.getReplyString());
ftpClient.sendCommand(FTPCmd.USER, "xxx");
System.out.println(ftpClient.getReplyString());
ftpClient.sendCommand(FTPCmd.PASS, "yyy");
System.out.println(ftpClient.getReplyString());
ftpClient.sendCommand(FTPCmd.CWD, "/CodeJava");
System.out.println(ftpClient.getReplyString());

// that part of the code i want to do periodically :
InputStream is= (ftpClient.retrieveFileStream("deneme1.txt"));
System.out.println("Input Stream has opened.");
StringWriter writer = new StringWriter();
IOUtils.copy(is, writer, "UTF-8");
theString = writer.toString();
System.out.println(theString);

最佳答案

您可以使用计时器:

new Timer().scheduleAtFixedRate(new TimerTask(){
@Override
public void run() {
//Your task here
}
}, 0, 30 * 1000);

您还可以使用 Tony 指出的 ScheduledExcutorService。
您可以在这里阅读:http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html

此处:https://gist.github.com/codingtony/c21e278b3111d5256f0d



希望这有帮助。

关于java - 定期读取InputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24088659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com