#file-io #read #binary #write #file #read-write #file-read

file-utils

文件I/O的便利封装,主要围绕二进制操作

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(())
}

无运行时依赖