Rust Function: Read file contents
Write a Rust function that reads a file and returns Result<String, std::io::Error>, where the string contains the file's contents.
Sample Solution:
Rust Code:
// Import the fs module from the standard library, which provides file system operations.
use std::fs;
// Import the io module from the standard library, which provides input/output functionality.
use std::io;
// Define a function named 'read_file_contents' that takes a file path as input and returns a Result<String, io::Error>.
fn read_file_contents(file_path: &str) -> Result<String, io::Error> {
// Use 'fs::read_to_string' to read the contents of the file specified by 'file_path' into a String.
match fs::read_to_string(file_path) {
// If reading the file is successful, return the contents wrapped in Ok.
Ok(contents) => Ok(contents),
// If an error occurs while reading the file, return the error wrapped in Err.
Err(error) => Err(error),
}
}
// Define the main function, where the program execution starts.
fn main() {
// Specify the file path of the file to be read.
let file_path = "example.txt"; // Adjust the file path as needed
// Call the `read_file_contents` function with the specified file path and handle the returned Result.
match read_file_contents(file_path) {
// If reading the file is successful, print its contents.
Ok(contents) => println!("File contents: {}", contents),
// If an error occurs while reading the file, print the error message.
Err(error) => eprintln!("Error reading file: {}", error),
}
}
Output:
Error reading file: No such file or directory (os error 2)
Explanation:
Here's a brief explanation of the above Rust code:
- Imports:
- use std::fs;: This imports the file system module from the standard library, allowing access to file-related functions.
- use std::io;: This imports the input/output module from the standard library, which provides types and functions for handling input and output operations.
- Function read_file_contents:
- This function takes a file path (&str) as input and returns a Result<String, io::Error>.
- It uses fs::read_to_string to read the contents of the file specified by the 'file_path' parameter.
- The 'match' statement handles the result of fs::read_to_string:
- If reading the file is successful (Ok(contents)), it returns the contents wrapped in 'Ok'.
- If an error occurs (Err(error)), it returns the error wrapped in 'Err'.
- Main function (main()):
- This is where the program execution starts.
- It specifies the file path of the file to be read ('example.txt' in this case).
- It calls the "read_file_contents()" function with the specified file path and handles the returned 'Result'.
- If reading the file is successful (Ok(contents)), it prints the file contents.
- If an error occurs while reading the file (Err(error)), it prints the error message.
Rust Code Editor:
Previous: Rust Function: Find maximum value.
Next: Rust Function: Square root calculation.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics