6个版本
使用旧的Rust 2015
0.1.5 | 2018年6月9日 |
---|---|
0.1.4 | 2018年3月18日 |
#1801 在 编码
15KB
445 行
file-utils
本crate旨在提供便利的单行语句,用于执行无需依赖和无需不安全代码的文件I/O操作。
此外,为确保多字节原始类型和指针(如usize
)正确编码,crate的编译考虑了以下因素:
- 架构(32位与64位)
- 字节序
使用方法
读取二进制
所有方法都是为实现了Read
特质的任何类型直接实现的,因此您只需要将特质引入作用域。
extern crate file_utils;
use std::io;
use std::fs::File;
use file_utils::read::Read; // <--- bring the Read trait into scope
fn foo() -> io::Result<()>
{
let mut file = File::open("binary-file")?;
// Read the first 8 bytes of the file into a u64
let uns: u64 = file.read_u64()?;
// And the next 4 bytes into an f32
let flt: f32 = file.read_f32()?;
Ok(())
}
所有原始数字类型都可以这样读取
fn read_usize(&mut self)-> io::Result<usize>;
fn read_isize(&mut self)-> io::Result<isize>;
// 8-bit
fn read_u8(&mut self)-> io::Result<u8>;
fn read_i8(&mut self)-> io::Result<i8>;
// 16-bit
fn read_u16(&mut self)-> io::Result<u16>;
fn read_i16(&mut self)-> io::Result<i16>;
// 32-bit
fn read_u32(&mut self)-> io::Result<u32>;
fn read_i32(&mut self)-> io::Result<i32>;
fn read_f32(&mut self)-> io::Result<f32>;
// 64-bit
fn read_u64(&mut self)-> io::Result<u64>;
fn read_i64(&mut self)-> io::Result<i64>;
fn read_f64(&mut self)-> io::Result<f64>;
写入二进制
类似于Read
,此crate将其写入方法作为对实现了Write
的任何类型的实现。
extern crate file_utils;
use std::io;
use std::fs::File;
use file_utils::write::Write; // <--- bring the Write trait into scope
fn foo() -> io::Result<()>
{
let file mut = File::create("binary-file")?;
// Write a usize to the file, which will either be 4 or 8 bytes depending on architecture
file.write_usize(12)?;
// Write a 4-byte floating point number
file.write_f32(1.42)?;
Ok(())
}