#utf-8 #utf-16 #reading-file #text-encoding #bom #data-encoding #unicode

file-content

一个用于处理文件和常见文本数据编码的库

4个版本 (2个重大变更)

0.3.1 2024年3月27日
0.3.0 2024年3月25日
0.2.0 2024年3月18日
0.1.0 2024年3月18日

#683 in 编码

MIT许可证

26KB
496

file-content

Crates.io Version docs.rs

一个用于从磁盘或任何其他地方读取文件内容/文本数据到 String 的轻量级库。

支持的编码

  • UTF-8
  • UTF-8-BOM
  • UTF-16-BE
  • UTF-16-LE
  • 或原始字节

用法

该包中有两个主要的结构体。

  • file_content::File: 一个围绕 PathBuffile_content::FileContent 的包装。

    使用此结构体可以轻松地从磁盘读取可能以任何支持编码存在的文件内容。

  • file_content::FileContent: 一个枚举,表示内容的类型,可以是 EncodedBinary。如果是 Encoded,则该变体包含内容的编码以及内存中其的字符串表示形式。如果是 Binary,则包含原始数据的 Vec<u8>

示例: read_file.rs 从磁盘读取文件并打印路径、内容类型和内容

use anyhow::anyhow;
use file_content::File;

fn main() -> anyhow::Result<()> {
    let file_path = std::env::args()
        .nth(1)
        .ok_or_else(|| anyhow!("Usage: read_file <file>"))?;

    let file: File = File::new_from_path(&file_path)?;

    println!("{:?}", file);

    let content_only: String = file_content::read_to_string(&file_path)?;

    println!("{content_only}");

    Ok(())
}

贡献

此项目欢迎贡献和建议。大多数贡献都需要您同意贡献者许可协议(CLA),声明您有权利,实际上也确实授予我们使用您的贡献的权利。有关详细信息,请访问 https://cla.opensource.microsoft.com

当您提交拉取请求时,CLA机器人将自动确定您是否需要提供CLA,并相应地装饰PR(例如,状态检查,注释)。只需遵循机器人提供的说明即可。您在整个使用我们CLA的仓库中只需这样做一次。

本项目采用了微软开源行为准则。如需更多信息,请参阅行为准则常见问题解答,或通过[email protected]联系以提出任何额外的问题或评论。

商标

本项目可能包含项目、产品或服务的商标或标志。微软商标或标志的授权使用必须遵守并遵循微软商标与品牌指南。在本项目的修改版本中使用微软商标或标志不得造成混淆或暗示微软赞助。任何第三方商标或标志的使用均受这些第三方政策的约束。

依赖项

~275–730KB
~17K SLoC