java 7 +
По моему скромному мнению, поскольку я фанат простой java, я бы предложил что-то, что это комбинация вышеупомянутых ответов. Может быть, я опаздываю на вечеринку. Вот код:
String sampleText = "test" + System.getProperty("line.separator");
Files.write(Paths.get(filePath), sampleText.getBytes(StandardCharsets.UTF_8),
StandardOpenOption.CREATE, StandardOpenOption.APPEND);
Если файл не существует, он создает его, и если он уже существует, он добавляет sampleText в существующий файл. Используя это, вы избавляетесь от добавления ненужных библиотек в ваш путь к классам.
Таким образом, я нашел проблему, которая была в два раза.
Первый был при создании Discovery для BulkWalk, он должен быть следующим:
Discovery discovery = Messenger.GetNextDiscovery(SnmpType.GetBulkRequestPdu);
Ключевой частью является получение SnmpType правильно (мой код выше SnmpType.GetRequestPdu и не SnmpType.Get Bulk RequestPdu). В учебнике не упоминается, что SnmpType отличается.
Во-вторых, при передаче параметров в метод Messenger.BulkWalk () я передавал имя сообщества, а не имя пользователя. Замечания по исходному коду для метода BulkWalk действительно говорят имя сообщества, но это должен быть пользователь.
Я сделал, как предложил Лекс Ли, и выполнил / проверил образец snmpwalk, чтобы убедиться в отсутствии проблем. После этого я вернулся и просмотрел исходный код этого примера и обнаружил две проблемы.