sprintf является подобным C способом сделать это, которое также работает в C++.
В C++, комбинация stringstream и потокового выходного форматирования (см. http://www.arachnoid.com/cpptutor/student3.html ) сделает задание.
Это зависит от того, какие данные вы планируете хранить. Этот ответ основан на предположении, что вы храните и изменяете данные во время выполнения.
Вопреки тому, что предлагали другие, я бы не рекомендовал использовать / usr / share
для хранения. Из Стандарта иерархии файловой системы :
Иерархия / usr / share предназначена для всех независимая от архитектуры только для чтения файлы данных.
Поскольку вы изменяете данные, это противоречит природе подсистемы / usr
только для чтения.
По-видимому, лучшим местом для хранения данных о состоянии вашего приложения было бы / var
или, более конкретно, / var / lib
. Это также происходит из Стандарта иерархии . Вы можете создать / var / lib / myapp
, или, если вы также используете такие вещи, как файлы блокировки или журналы, вы можете использовать / var / lock
или / var /log
.
Посмотрите внимательнее на стандарт в целом (ссылка на него приведена выше) - вы можете найти место, которое еще лучше соответствует тому, что вы хотите сделать.
Например, Steve K , я бы также рекомендовал использовать Preferences API для данных о предпочтениях приложения.
Поскольку вы используете Java, смотрели ли вы на Preferences API ?
Из введения:
Приложениям требуются данные о предпочтениях и конфигурации для адаптации к потребностям различных пользователей и сред. Пакет java.util.prefs предоставляет приложениям способ хранения и извлечения данных о пользовательских и системных настройках и данных конфигурации. Данные постоянно хранятся в резервном хранилище, зависящем от реализации. Есть два отдельных дерева узлов предпочтений, одно для предпочтений пользователя и одно для предпочтений системы
Я бы позволил встроенному API выполнять работу.
Это зависит.
Глобальная конфигурация -> / etc / appname
Только для чтения , независимо от архитектуры машины -> / usr / share / appname
Только чтение, зависит от машины -> / usr / lib / appname
Чтение-запись -> / var / lib / appname
Нет гарантии для полноту, пожалуйста, проверьте Стандарт иерархии файловой системы .
The freedesktop.org (previously known as the X Desktop Group) project has defined some standards for this in the XDG Base Directory Specification.
In your case, I'd have a look at $XDG_DATA_DIRS
:
$XDG_DATA_DIRS
defines the preference-ordered set of base directories to search for data files in addition to the$XDG_DATA_HOME
base directory. The directories in$XDG_DATA_DIRS
should be seperated with a colon ':'.If
$XDG_DATA_DIRS
is either not set or empty, a value equal to/usr/local/share/:/usr/share/
should be used.
I warmly suggest to read the XDG Base Directory Specification.
Если он не зависит от пользователя, вы, вероятно, можете сохранить его в / usr / share / appname
Вы хотите, чтобы это было жестко закодировано? Вы можете использовать System.getProperty ("user.home"), чтобы вернуть пользователей домой, чтобы он больше не зависел от платформы.