我在将Vec<u16>内容写入文件时遇到问题:
use std::fs::File;
use std::io::{Write, BufWriter};
use std::mem;
#[derive(Debug, Copy, Clone, PartialEq)]
pub enum ImageFormat {
GrayScale,
Rgb32,
}
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct ImageHeader {
pub width: usize,
pub height: usize,
pub format: ImageFormat,
}
pub struct Image {
pub header: ImageHeader,
pub data: Vec<u16>,
}
fn write_to_file(path: &str, img: &Image) -> std::io::Result<()> {
let f = try!(File::create(path));
let mut bw = BufWriter::new(f);
let slice = &img.data[..];
println!("before length: {}", slice.len());
let sl: &[u8];
unsafe { …Run Code Online (Sandbox Code Playgroud) 我不知道如何将a Vec<i32>转换为&[u8]切片.
fn main() {
let v: Vec<i32> = vec![1; 100_000_000];
let v_bytes: &[u8] = /* ... */;
}
Run Code Online (Sandbox Code Playgroud)
我想写一个大Vec<i32>文件到一个文件,所以我可以在将来阅读它.
我如何转换Vec<u32>为字节,这样[1, 2, 4]应该给我[1, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0], 并获取逆字节并将它们转换回整数向量?
我只知道如何转换[u8; 4]成整数。
rust ×3