私は一度に1行を印刷するメソッドを作成しようとしていますが、その間に2分の遅延があります。それ、どうやったら出来るの?。ArrayListからスケジュールに従って1行を出力する方法はありますか?
コードのこの部分は、テキストファイル(questionsFile)を読み込み、ArrayListのを作成します。ここでは
public Broadcaster(Socket connection) throws IOException {
read = new BufferedReader(new InputStreamReader(connection.getInputStream()));
write = new PrintStream(connection.getOutputStream());
List<String> questionsList = new ArrayList<>();
try (Stream<String> questionsStream = Files.lines(Paths.get(questionsFile))) {
questionsList = questionsStream
.parallel()
.collect(Collectors.toList());
} catch (IOException w) {
w.printStackTrace();
}
は、タイマーがある怒鳴るが、何らかの理由で、私はそれを動作させることはできません。 ArrayList全体が遅延なく印刷されます。私の目的は、printStreamを使用することですが、テスト目的で、テキストは現在コンソールに出力されています。一度に1行ずつ出力するようにコードをどのように書き直すことができますか?
List<String> finalQuestionsList = questionsList;
timer.schedule(task(() -> finalQuestionsList.forEach(System.out::println))
, 120, TimeUnit.SECONDS.toMillis(1));
}
private TimerTask task(Runnable task) {
return new TimerTask() {
@Override
public void run() {
task.run();
は、あなたが()timer.startを呼び出したのですか? は定期的にタイマーを設定していますか? –
直接ではありませんが、私はすべてを実行させるExecutorServiceでメソッドを起動しています。 –