Class WalletFiles

java.lang.Object
org.bitcoinj.wallet.WalletFiles

public class WalletFiles extends Object
A class that handles atomic and optionally delayed writing of the wallet file to disk. In future: backups too. It can be useful to delay writing of a wallet file to disk on slow devices where disk and serialization overhead can come to dominate the chain processing speed, i.e. on Android phones. By coalescing writes and doing serialization and disk IO on a background thread performance can be improved.
  • Constructor Details

    • WalletFiles

      public WalletFiles(Wallet wallet, File file, long delay, TimeUnit delayTimeUnit)
      Initialize atomic and optionally delayed writing of the wallet file to disk. Note the initial wallet state isn't saved automatically. The Wallet calls saveNow() or saveLater() as wallet state changes, depending on the urgency of the changes.
  • Method Details

    • getWallet

      public Wallet getWallet()
      Get the Wallet this WalletFiles is managing.
    • setListener

      public void setListener(@Nonnull WalletFiles.Listener listener)
      The given listener will be called on the autosave thread before and after the wallet is saved to disk.
    • saveNow

      public void saveNow() throws IOException
      Actually write the wallet file to disk, using an atomic rename when possible. Runs on the current thread.
      Throws:
      IOException
    • saveLater

      public void saveLater()
      Queues up a save in the background. Useful for not very important wallet changes.
    • shutdownAndWait

      public void shutdownAndWait()
      Shut down auto-saving.