edu.wpi.first.wpilibj

## Class Preferences

- java.lang.Object
- - edu.wpi.first.wpilibj.Preferences

-     public class Preferences
      extends java.lang.Object

  The preferences class provides a relatively simple way to save important values to the roboRIO to access the next time the roboRIO is booted.

  This class loads and saves from a file inside the roboRIO. The user can not access the file directly, but may modify values at specific fields which will then be automatically saved to the file by the NetworkTables server.

  This class is thread safe.

  This will also interact with `NetworkTable` by creating a table called "Preferences" with all the key-value pairs.

- - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `containsKey(java.lang.String key)` Returns whether or not there is a key with the given name.
    `boolean` | `getBoolean(java.lang.String key, boolean backup)` Returns the boolean at the given key.
    `double` | `getDouble(java.lang.String key, double backup)` Returns the double at the given key.
    `float` | `getFloat(java.lang.String key, float backup)` Returns the float at the given key.
    `static Preferences` | `getInstance()` Returns the preferences instance.
    `int` | `getInt(java.lang.String key, int backup)` Returns the int at the given key.
    `java.util.Vector<java.lang.String>` | `getKeys()` Gets the vector of keys.
    `long` | `getLong(java.lang.String key, long backup)` Returns the long at the given key.
    `java.lang.String` | `getString(java.lang.String key, java.lang.String backup)` Returns the string at the given key.
    `void` | `putBoolean(java.lang.String key, boolean value)` Puts the given boolean into the preferences table.
    `void` | `putDouble(java.lang.String key, double value)` Puts the given double into the preferences table.
    `void` | `putFloat(java.lang.String key, float value)` Puts the given float into the preferences table.
    `void` | `putInt(java.lang.String key, int value)` Puts the given int into the preferences table.
    `void` | `putLong(java.lang.String key, long value)` Puts the given long into the preferences table.
    `void` | `putString(java.lang.String key, java.lang.String value)` Puts the given string into the preferences table.
    `void` | `remove(java.lang.String key)` Remove a preference.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### getInstance

          public static Preferences getInstance()

      Returns the preferences instance.
      Returns:
        the preferences instance

    - #### getKeys

          public java.util.Vector<java.lang.String> getKeys()

      Gets the vector of keys.
      Returns:
        a vector of the keys

    - #### putString

          public void putString(java.lang.String key,
                                java.lang.String value)

      Puts the given string into the preferences table.
      Parameters:
        `key` - the key
        `value` - the value
      Throws:
        `java.lang.NullPointerException` - if value is null

    - #### putInt

          public void putInt(java.lang.String key,
                             int value)

      Puts the given int into the preferences table.
      Parameters:
        `key` - the key
        `value` - the value

    - #### putDouble

          public void putDouble(java.lang.String key,
                                double value)

      Puts the given double into the preferences table.
      Parameters:
        `key` - the key
        `value` - the value

    - #### putFloat

          public void putFloat(java.lang.String key,
                               float value)

      Puts the given float into the preferences table.
      Parameters:
        `key` - the key
        `value` - the value

    - #### putBoolean

          public void putBoolean(java.lang.String key,
                                 boolean value)

      Puts the given boolean into the preferences table.
      Parameters:
        `key` - the key
        `value` - the value

    - #### putLong

          public void putLong(java.lang.String key,
                              long value)

      Puts the given long into the preferences table.
      Parameters:
        `key` - the key
        `value` - the value

    - #### containsKey

          public boolean containsKey(java.lang.String key)

      Returns whether or not there is a key with the given name.
      Parameters:
        `key` - the key
      Returns:
        if there is a value at the given key

    - #### remove

          public void remove(java.lang.String key)

      Remove a preference.
      Parameters:
        `key` - the key

    - #### getString

          public java.lang.String getString(java.lang.String key,
                                            java.lang.String backup)

      Returns the string at the given key. If this table does not have a value for that position, then the given backup value will be returned.
      Parameters:
        `key` - the key
        `backup` - the value to return if none exists in the table
      Returns:
        either the value in the table, or the backup

    - #### getInt

          public int getInt(java.lang.String key,
                            int backup)

      Returns the int at the given key. If this table does not have a value for that position, then the given backup value will be returned.
      Parameters:
        `key` - the key
        `backup` - the value to return if none exists in the table
      Returns:
        either the value in the table, or the backup

    - #### getDouble

          public double getDouble(java.lang.String key,
                                  double backup)

      Returns the double at the given key. If this table does not have a value for that position, then the given backup value will be returned.
      Parameters:
        `key` - the key
        `backup` - the value to return if none exists in the table
      Returns:
        either the value in the table, or the backup

    - #### getBoolean

          public boolean getBoolean(java.lang.String key,
                                    boolean backup)

      Returns the boolean at the given key. If this table does not have a value for that position, then the given backup value will be returned.
      Parameters:
        `key` - the key
        `backup` - the value to return if none exists in the table
      Returns:
        either the value in the table, or the backup

    - #### getFloat

          public float getFloat(java.lang.String key,
                                float backup)

      Returns the float at the given key. If this table does not have a value for that position, then the given backup value will be returned.
      Parameters:
        `key` - the key
        `backup` - the value to return if none exists in the table
      Returns:
        either the value in the table, or the backup

    - #### getLong

          public long getLong(java.lang.String key,
                              long backup)

      Returns the long at the given key. If this table does not have a value for that position, then the given backup value will be returned.
      Parameters:
        `key` - the key
        `backup` - the value to return if none exists in the table
      Returns:
        either the value in the table, or the backup