Для первого варианта будет:
Files.write(Joiner.on(lineEnding).join(lines), file, charset);
Я не знаю, что это обязательно будет быстрее, чем добавление в цикл (и, очевидно, это также включает в себя создание другой строки на основе строк), но это выглядит лучше.
Для двух других ... Гуава не предлагает ничего особенного для сериализации. Тем не менее, вы можете построить несколько хороших утилит поверх поддержки ввода-вывода Guava, если хотите. Прохождение промежуточного byte[]
кажется расточительным для сериализации или десериализации объектов, когда вы можете писать / читать объекты непосредственно в / из потока. Методы, подобные этим, было бы довольно легко написать:
void serialize(OutputSupplier<? extends OutputStream> outputSupplier,
Object object) throws IOException;
Object deserialize(InputSupplier<? extends InputStream> inputSupplier)
throws IOException, ClassNotFoundException;