Rust File and I/O Operations Quiz
Master Rust's file system operations and I/O handling for robust data persistence and streaming
Question 1
What is the std::fs module used for?
Question 2
What does this file reading example do?
use std::fs;
let content = fs::read_to_string("hello.txt")?;
println!("{}", content);Question 3
What does fs::read() return?
Question 4
What does this file writing example do?
use std::fs;
fs::write("output.txt", "Hello, World!")?;
println!("File written");Question 5
What is the difference between fs::write() and File operations?
Question 6
What does this File opening example do?
use std::fs::File;
let file = File::open("data.txt")?;
// Use file for readingQuestion 7
What does File::create() do?
Question 8
What is the Read trait?
Question 9
What does this Read implementation example do?
use std::io::Read;
let mut file = File::open("data.txt")?;
let mut buffer = [0; 10];
file.read(&mut buffer)?;Question 10
What is the Write trait?
Question 11
What does this Write implementation example do?
use std::io::Write;
let mut file = File::create("output.txt")?;
file.write_all(b"Hello, World!")?;
file.flush()?;Question 12
What is BufReader used for?
Question 13
What does this BufReader example do?
use std::io::{BufReader, BufRead};
let file = File::open("data.txt")?;
let reader = BufReader::new(file);
for line in reader.lines() {
println!("{}", line?);
}Question 14
What is BufWriter used for?
Question 15
What does this BufWriter example do?
use std::io::BufWriter;
let file = File::create("output.txt")?;
let mut writer = BufWriter::new(file);
writeln!(writer, "Hello")?;
writeln!(writer, "World")?;
writer.flush()?;Question 16
What is std::io::Error?
Question 17
What does this error handling example show?
let result = fs::read_to_string("missing.txt");
match result {
Ok(content) => println!("{}", content),
Err(error) => match error.kind() {
std::io::ErrorKind::NotFound => println!("File not found"),
_ => println!("Other error: {}", error),
}
}Question 18
What does fs::metadata() return?
Question 19
What does this metadata example show?
let metadata = fs::metadata("file.txt")?;
if metadata.is_file() {
println!("Size: {}", metadata.len());
}Question 20
What does fs::create_dir() do?
Question 21
What does fs::create_dir_all() do?
Question 22
What does fs::read_dir() return?
Question 23
What does this directory reading example do?
for entry in fs::read_dir("src")? {
let entry = entry?;
let path = entry.path();
if path.is_file() {
println!("File: {}", path.display());
}
}Question 24
What is std::path::Path?
Question 25
What is the difference between Path and PathBuf?
Question 26
What does this Path example show?
use std::path::Path;
let path = Path::new("src/main.rs");
println!("Extension: {:?}", path.extension());
println!("Parent: {:?}", path.parent());Question 27
What does PathBuf do?
Question 28
What does this PathBuf example show?
use std::path::PathBuf;
let mut path = PathBuf::from("src");
path.push("main.rs");
println!("{}", path.display());Question 29
What is the Seek trait?
Question 30
What does this Seek example do?
use std::io::Seek;
let mut file = File::open("data.txt")?;
file.seek(std::io::SeekFrom::Start(100))?;
let mut buffer = [0; 10];
file.read(&mut buffer)?;Question 31
What is std::io::stdin()?
Question 32
What does this stdin reading example do?
use std::io::{self, BufRead};
let stdin = io::stdin();
for line in stdin.lines() {
let line = line?;
if line.trim().is_empty() { break; }
println!("You entered: {}", line);
}Question 33
What is std::io::stdout()?
Question 34
What does fs::copy() do?
Question 35
What does fs::rename() do?
Question 36
What does fs::remove_file() do?
Question 37
What does fs::remove_dir() do?
Question 38
What is the performance difference between buffered and unbuffered I/O?
Question 39
What is the main advantage of using ? for error propagation in I/O?
Question 40
In a file processing application that needs to read large text files efficiently, handle various I/O errors gracefully, and write processed results, what combination of Rust I/O features would you use and why?
