🔮
Rust学习笔记
  • 介绍
  • Rust入门
    • 安装使用
    • Cargo初用
    • 其他工具
    • 实例1
    • vim安装及配置
    • rust analyzer速度慢
  • rust基础
    • 关键字
    • 模块module和测试
    • 变量-数据类型
      • 浮点数
      • NaN
      • 有理数和复数
    • 单元类型
    • 字符串-切片-数组-元组-hashpmap
    • 结构体和枚举
    • 控制语句
    • 模式匹配match
    • 函数-method 闭包 迭代器
    • File操作
  • Rust进阶
    • 所有权
      • 所有权基础
      • 如何让函数使用某个值,但不获得其所有权
      • 切片
    • Rust VS C
    • 函数指针
  • Q&A
    • Rust的宏
    • cargo expand
    • web server
    • cargo watch使用
    • lib分类
    • cargo源
  • 参考
    • 博客
    • 项目
  • rust内存泄露
  • 智能指针
  • Tauri类似electron的框架
  • Tokio包使用
  • Rust wasm介绍
  • 多线程
    • C语言
  • Golang语言
    • 项目
  • Java
  • Javascript
Powered by GitBook
On this page
  1. rust基础

File操作

File::create:等价于 OpenOptions::new().write(true).create(true).truncate(true).open(path.as_ref())

File::open:只读打开

fs::create_dir_all:递归创建

fs::remove_dir_all:删除目录下所有

fs::remove_dir:删除空目录

read:读取流

read_to_string:读取成字符串

use std::{fs::{File, self, OpenOptions}, io::{Read, Seek, SeekFrom, Write}};

fn main() -> std::io::Result<()>{
    let _f = File::create("test666.txt")?;
    fs::remove_file("test666.txt")?;
    // fs::create_dir("tmp1/abc")?;
    fs::create_dir_all("tmp1/aaa/bbb/ccc")?;
    // fs::remove_dir("tmp1")?;
    // fs::remove_dir("tmp")?;
    // fs::remove_dir_all("tmp")?;
    // fs::remove_file("test.txt")?;

    // only read, error when file no exist
    // let _file = File::open("test.txt")?;

    // creat new file,open when file exist
    // let mut _f = OpenOptions::new().read(true).write(true).create(true).open("test.txt")?;

    // append
    // let _file = OpenOptions::new().append(true).open("test.txt")?;

    // truncate clear file
    // let _file = OpenOptions::new().write(true).truncate(true).open("test.txt")?;

    // let mut f = File::open("test.txt")?;
    let mut f = OpenOptions::new().read(true).write(true).create(true).open("test.txt")?;
    // let mut buffer = [0;10];
    // let n = f.read(&mut buffer[..])?;
    // println!("The bytes: {:?}",&buffer[..n]);

    // f.seek(SeekFrom::Start(10))?;
    // f.seek(SeekFrom::End(-10))?;
    // f.seek(SeekFrom::Current(-10))?;
    let mut buf = String::new();
    // error when no utf-8
    f.read_to_string(&mut buf)?;
    println!("The buffer string: {:?}",buf);

    f.write(b"00write bytes")?;
    // f.write_all(buf)
    f.flush()?;

    Ok(())
}
Previous函数-method 闭包 迭代器NextRust进阶

Last updated 2 years ago