С ObjectOutputStream
вы в основном сериализуете a String
объект на выходе. В результате получается , а не текстовый файл, читаемый человеком, с исходным значением строки.
Вам необходимо использовать Writer
, в котором вы передаете значение строки в.
public void writeStream() throws IOException {
Writer writer = new FileWriter("outputOne.txt");
try {
writer.write(inputContent);
} finally {
writer.close();
}
}
В результате получится текстовый файл, читаемый человеком, с исходным значением строки.
Не имеет отношения к конкретной проблеме , обратите внимание, что использование относительных путей в файловом вводе-выводе является крайне плохой идеей. Вы никогда не знаете наверняка, где это закончится, и в некоторых средах рабочий каталог также не доступен для записи. Всегда явно указывайте абсолютный путь к существующей и доступной для записи папке:
Writer writer = new FileWriter("/path/to/outputOne.txt");
В средах Windows, где сервер устанавливается и запускается с диска C:\
, вышеуказанный путь в основном совпадает с C:\path\to\outputOne.txt
. При необходимости вы можете настроить корневой каталог в качестве аргумента виртуальной машины или настройки файла конфигурации. Предполагая, что вы передаете -Doutput.location=/path/to
аргумент VM, вы можете использовать его следующим образом:
File root = new File(System.getProperty("output.location"));
Writer writer = new FileWriter(new File(root, "outputOne.txt"));