При попытке прочитать файл и записать его в другой файл каждая строка переносится внутри Ok () при использовании write !. Мне не удалось обнаружить, что я делаю неправильно, надеюсь, у кого-нибудь появится идея.
Мне удалось выделить проблему, связанную с {: #?}.
Если я помещу регулярный текст в "", он печатается нормально и за пределами Ok (). Кто-нибудь еще сталкивался с этим?
Спасибо
use std::fs::File;
use std::io::{BufReader, BufRead};
use std::io::{Write, Error};
fn main() -> Result<(), Error> {
let ofile = File::open("test.xml")?;
let mut new_file = File::create("output.xml")?;
let input = BufReader::new(ofile);
for line in input.lines() {
write!(new_file, "{:#?}", line)?;
}
Ok(())
}
Input
<?xml version = '1.0' encoding = 'UTF-8'?>
<Configuration xmlns="configuration" configType="TEST_RULE" actionType="NEW RULE">
<Reference>
<Code>AV</Code>
<Name>TESTER</Name>
</Reference>
<ConfigItems>
<ConfigItem>
<description>Test Description</description>
</ConfigItem>
</ConfigItems>
</Configuration>
Результирующий вывод
Ok(
"<?xml version = \'1.0\' encoding = \'UTF-8\'?>"
)Ok(
"<Configuration xmlns=\"configuration\" configType=\"TEST_RULE\" actionType=\"NEW RULE\">"
)Ok(
" <Reference>"
)Ok(
" <Code>AV</Code>"
)Ok(
" <Name>TESTER</Name>"
)Ok(
" </Reference>"
)Ok(
" <ConfigItems>"
)Ok(
" <ConfigItem>"
)Ok(
" <description>Test Description</description>"
)Ok(
" </ConfigItem>"
)Ok(
" </ConfigItems>"
)Ok(
"</Configuration>"
)
Исправлена ошибка:
Согласно ответу ниже, я изменил запись! к следующему, и это решило проблему.
write!(new_file, "{}\n", line?)?;