Thread-safe file implementation of a credential store.
For security purposes, the file's permissions are set such that the file is only accessible by
the file's owner.
Note: this class is not compatible with Android lower than API level 26 (Oreo). For an
implementation compatible with Android < 26, please use
com.google.api.client.extensions.android.util.store.FileDataStoreFactory which is provided by
com.google.http-client:google-http-client-android.
Factory for a store that manages serializable data, where the key is a string and the value is a
Serializable object.
Users should keep a single globally shared instance of the data store factory. Otherwise, some
implementations may not share the internal copies of the data, and you'll end up with multiple
data stores by the same IDs, each living in a separate implementation. Some implementations may
also have some overhead, or may have caching implemented, and so multiple instances may defeat
that. Finally, have multiple instances may defeat the thread-safety guarantee for some
implementations.
Implementation should store the data in a persistent storage such as a database.
Implementation should be thread-safe. Read the JavaDoc of the implementation for those details.
See Also: MemoryDataStoreFactory, FileDataStoreFactory
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,["# Package com.google.api.client.util.store (2.0.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.0.0 (latest)](/java/docs/reference/google-http-client/latest/com.google.api.client.util.store)\n- [1.47.1](/java/docs/reference/google-http-client/1.47.1/com.google.api.client.util.store)\n- [1.46.3](/java/docs/reference/google-http-client/1.46.3/com.google.api.client.util.store)\n- [1.45.3](/java/docs/reference/google-http-client/1.45.3/com.google.api.client.util.store)\n- [1.44.2](/java/docs/reference/google-http-client/1.44.2/com.google.api.client.util.store)\n- [1.43.2](/java/docs/reference/google-http-client/1.43.2/com.google.api.client.util.store)\n- [1.42.3](/java/docs/reference/google-http-client/1.42.3/com.google.api.client.util.store)\n- [1.41.8](/java/docs/reference/google-http-client/1.41.8/com.google.api.client.util.store) \nUtilities to store serializable data.\n\nClasses\n-------\n\n### [AbstractDataStore\\\u003cV\\\u003e](/java/docs/reference/google-http-client/latest/com.google.api.client.util.store.AbstractDataStore)\n\nAbstract data store implementation.\n\n### [AbstractDataStoreFactory](/java/docs/reference/google-http-client/latest/com.google.api.client.util.store.AbstractDataStoreFactory)\n\nAbstract data store factory implementation.\n\n### [AbstractMemoryDataStore\\\u003cV\\\u003e](/java/docs/reference/google-http-client/latest/com.google.api.client.util.store.AbstractMemoryDataStore)\n\nAbstract, thread-safe, in-memory implementation of a data store factory.\n\n### [DataStoreUtils](/java/docs/reference/google-http-client/latest/com.google.api.client.util.store.DataStoreUtils)\n\nUtilities for data stores.\n\n### [FileDataStoreFactory](/java/docs/reference/google-http-client/latest/com.google.api.client.util.store.FileDataStoreFactory)\n\nThread-safe file implementation of a credential store.\n\nFor security purposes, the file's permissions are set such that the file is only accessible by\nthe file's owner.\n\nNote: this class is not compatible with Android lower than API level 26 (Oreo). For an\nimplementation compatible with Android \\\u003c 26, please use\ncom.google.api.client.extensions.android.util.store.FileDataStoreFactory which is provided by\ncom.google.http-client:google-http-client-android.\n\n### [MemoryDataStoreFactory](/java/docs/reference/google-http-client/latest/com.google.api.client.util.store.MemoryDataStoreFactory)\n\nThread-safe in-memory implementation of a data store factory.\n\nFor convenience, a default global instance is provided in [#getDefaultInstance()](/java/docs/reference/google-http-client/latest/com.google.api.client.util.store.MemoryDataStoreFactory#com_google_api_client_util_store_MemoryDataStoreFactory_getDefaultInstance__).\n\nInterfaces\n----------\n\n### [DataStore\\\u003cV\\\u003e](/java/docs/reference/google-http-client/latest/com.google.api.client.util.store.DataStore)\n\nStores and manages serializable data of a specific type, where the key is a string and the value\nis a [Serializable](https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html) object.\n\n`null` keys or values are not allowed. Implementation should be thread-safe.\n\n### [DataStoreFactory](/java/docs/reference/google-http-client/latest/com.google.api.client.util.store.DataStoreFactory)\n\nFactory for a store that manages serializable data, where the key is a string and the value is a\n[Serializable](https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html) object.\n\nUsers should keep a single globally shared instance of the data store factory. Otherwise, some\nimplementations may not share the internal copies of the data, and you'll end up with multiple\ndata stores by the same IDs, each living in a separate implementation. Some implementations may\nalso have some overhead, or may have caching implemented, and so multiple instances may defeat\nthat. Finally, have multiple instances may defeat the thread-safety guarantee for some\nimplementations.\n\nImplementation should store the data in a persistent storage such as a database.\nImplementation should be thread-safe. Read the JavaDoc of the implementation for those details.\nSee Also: [MemoryDataStoreFactory](/java/docs/reference/google-http-client/latest/com.google.api.client.util.store.MemoryDataStoreFactory), [FileDataStoreFactory](/java/docs/reference/google-http-client/latest/com.google.api.client.extensions.android.util.store.FileDataStoreFactory)"]]