У меня есть приложение, которое ежечасно слушает внешнюю подачу и получает канал JSON, который является потоком кодирования передаваемого канала, слушатель в канал записывает кусок в файл, после того как весь поток завершен, другой поток анализирует файл и извлекает данные. Но теперь, когда вы пишете файл, данные записываются в двоичном формате, даже если я указал кодировку во время записи.
public void writeToFile(InputStream in){
File feedFile = new File("/tmp/feed.json");
try {
FileUtils.touch(feedFile);
StringWriter writer = new StringWriter();
IOUtils.copy(in, writer, StandardCharsets.UTF_8);
FileUtils.write(feedFile, writer.toString(), StandardCharsets.UTF_8,true);
} catch (IOException e) {
logger.error(Constants.FAILED_TO_WRITE_FEED_INTO_FILE,e);
}
}
Этот код отлично работает на windows и linux box, но в то время как внутри контейнера докера он написан в двоичном формате.
Контейнер-докерер использованный Centos7