我正在尝试读取一个文件并将其作为UTF-8
std:string:String
返回,如果我理解尝试String::from_utf8(content)
时收到的错误消息,则content
似乎是Result<collections::string::String, collections::vec::Vec<u8>>
。
fn get_index_body () -> String {
let path = Path::new("../html/ws1.html");
let display = path.display();
let mut file = match File::open(&path) {
Ok(f) => f,
Err(err) => panic!("file error: {}", err)
};
let content = file.read_to_end();
println!("{} {}", display, content);
return String::new(); // how to turn into String (which is utf-8)
}
1条答案
按热度按时间0md85ypi1#
检查io::Reader trait提供的函数:https://doc.rust-lang.org/std/io/trait.Read.html
读取结束()返回
IoResult<Vec<u8>>
,读取字符串()返回IoResult<String>
。IoResult<String>
只是编写Result<String, IoError>
的一种简便方法:https://doc.rust-lang.org/std/io/type.Result.html您可以使用unwrap()从结果中提取字符串:
或自己处理错误:
另请参阅:http://doc.rust-lang.org/std/result/enum.Result.html