2017-11-02 1 views
0

ファイルの末尾(または先頭)にデータを追加する方法は?私は使用しようとしましたVertxがファイルに追加する

list.forEach(str -> { 
    vertx.fileSystem().writeFile(path, 
     Buffer.buffer(str), result -> { 
      if (result.succeeded()) { 
      LOGGER.debug(str + " appended"); 
      } else { 
      LOGGER.error(str + " not appended"); 
      } 
     }); 
    }); 

しかし最後の項目だけを書き込みます。

答えて

4

連続して呼び出すたびにデータが上書きされるのは、writeFileです。そのため、最後の項目だけがファイルに表示されます。各データ項目をファイルに追加するには、ファイルをOpenOptions#setAppend(true)

vertx.fileSystem().open(path, new OpenOptions().setAppend(true), ar -> { 
    if (ar.succeeded()) { 
    AsyncFile ws = ar.result(); 
    list.forEach(str -> { 
     Buffer chunk = Buffer.buffer(str); 
     ws.write(chunk); 
    }); 
    } else { 
    System.err.println("Could not open file"); 
    } 
}); 
で開きます
関連する問題