Следующий метод позволит вам добавить текст к некоторому файлу:
private void appendToFile(String filePath, String text)
{
PrintWriter fileWriter = null;
try
{
fileWriter = new PrintWriter(new BufferedWriter(new FileWriter(
filePath, true)));
fileWriter.println(text);
} catch (IOException ioException)
{
ioException.printStackTrace();
} finally
{
if (fileWriter != null)
{
fileWriter.close();
}
}
}
Альтернативно, используя FileUtils
:
public static void appendToFile(String filePath, String text) throws IOException
{
File file = new File(filePath);
if(!file.exists())
{
file.createNewFile();
}
String fileContents = FileUtils.readFileToString(file);
if(file.length() != 0)
{
fileContents = fileContents.concat(System.lineSeparator());
}
fileContents = fileContents.concat(text);
FileUtils.writeStringToFile(file, fileContents);
}
Это не но отлично работает. Разрывы строк обрабатываются правильно, и новый файл создается, если он еще не существует.
Ваша команда работает для меня в kubectl 1.9.2
Если она все еще не работает, вы можете использовать tr в bash, чтобы заменить пробелы новыми строками:
kubectl config view -o=jsonpath="{.contexts[*].name}" | tr " " "\n"
Я понял это. Я использовал сценарий @ ahmetb kubectl-aliases , который работает без проблем, но одно из предложений в README было:
Распечатайте полную команду перед ее запуском. : Добавьте это в ваш файл .bashrc или .zshrc:
blockquote>
function kubectl() { echo "+ kubectl $@"; command kubectl $@; }
У меня было объявление этой функции в моем .bashrc, и оно удаляло кавычки для моего [ 111] аргумент. Как только я закомментировал это объявление и открыл новую оболочку, команда работала правильно.