diff --git a/exercises/24_file_io/file_io2.rs b/exercises/24_file_io/file_io2.rs index a65b1533..66579294 100644 --- a/exercises/24_file_io/file_io2.rs +++ b/exercises/24_file_io/file_io2.rs @@ -7,26 +7,22 @@ const TEST_OUTPUT_FILE_NAME: &str = "MultiLineOutputFile.txt"; fn main() { create_required_files(); - let input_file = fs::File::open(TEST_INPUT_FILE_NAME); - if input_file.is_err() { - panic!("Input file open error"); - } + let input_file = match fs::File::open(TEST_INPUT_FILE_NAME) { + Ok(f) => f, + Err(e) => panic!("Input file open error : {}", e), + }; + + let buffered_input_file = BufReader::new(input_file); + + let output_file = match fs::File::create(TEST_OUTPUT_FILE_NAME){ + Ok(f) => f, + Err(e) => panic!("Output file open error : {}", e), + }; // TODO : How to create a new BufReader using input file let buffered_input_file =; - let output_file = fs::File::create(TEST_OUTPUT_FILE_NAME); - - if output_file.is_err() { - eprintln!( - "Output file open error : {}", - output_file.as_ref().unwrap_err() - ); - panic!("Output file open error"); - } - let mut buffered_file_writer = BufWriter::new(output_file.ok().unwrap()); - let mut line_number = 1; for line in buffered_input_file.lines() { @@ -58,17 +54,14 @@ fn create_required_files() { if file_write_result.is_ok() { println!("Multi line file created successfully!"); - } else { - eprintln!( - "Error creating file : {} , error : {:?}", - file_path.display(), - file_write_result.err() - ); + }else { + eprintln!("Error creating file : {} , error : {:?}", file_path.display(), file_write_result.err()); } } } fn file_cleanup() { + let file_names = vec![TEST_INPUT_FILE_NAME, TEST_OUTPUT_FILE_NAME]; for file_name in file_names { @@ -78,15 +71,13 @@ fn file_cleanup() { let remove_status = fs::remove_file(file_path); if remove_status.is_ok() { println!("Successfully deleted file {}", file_name); - } else { - eprintln!( - "Error deleting file {}, err : {:?}", - file_name, - remove_status.err() - ); + }else { + eprintln!("Error deleting file {}, err : {:?}", file_name, remove_status.err()); } - } else { + }else { println!("No cleanup necassary since {} not exist.", file_name); } } + } + diff --git a/exercises/24_file_io/file_io3.rs b/exercises/24_file_io/file_io3.rs index 533ce247..94e7e5d4 100644 --- a/exercises/24_file_io/file_io3.rs +++ b/exercises/24_file_io/file_io3.rs @@ -11,20 +11,21 @@ fn main() { // TODO : How to get metadata using path_buffer ? let meta_data_result = path_buffer. - if let Ok(meta_data) = meta_data_result { - println!("Metadata about the file : {:?}", path_buffer); - println!("File creation time {:?}", meta_data.created()); - println!("File size {}", meta_data.len()); - assert_eq!(meta_data.len(), 117); - println!("File permissions {:?}", meta_data.permissions()); - assert!(!meta_data.permissions().readonly()); - } else { - eprintln!( - "Could not get metadata. Error: {:?}", - meta_data_result.err() - ); + match meta_data_result { + Ok(meta_data) => { + println!("Metadata about the file : {:?}", path_buffer); + println!("File creation time {:?}", meta_data.created()); + println!("File size {}", meta_data.len()); + assert_eq!(meta_data.len(), 117); + println!("File permissions {:?}", meta_data.permissions()); + assert!(!meta_data.permissions().readonly()); + } + Err(error) => { + eprintln!("Could not get metadata. Error: {:?}", error); + } } + file_cleanup(); } @@ -48,12 +49,8 @@ fn create_required_files() { if file_write_result.is_ok() { println!("Multi line file created successfully!"); - } else { - eprintln!( - "Error creating file : {} , error : {:?}", - file_path.display(), - file_write_result.err() - ); + }else { + eprintln!("Error creating file : {} , error : {:?}", file_path.display(), file_write_result.err()); } } } @@ -68,7 +65,7 @@ fn file_cleanup() { let remove_status = fs::remove_file(&path_buffer); if remove_status.is_ok() { println!("Test file deleted."); - } else { + }else { panic!("Error deleting file."); } } @@ -79,7 +76,7 @@ fn file_cleanup() { let remove_status = fs::remove_dir(&path_buffer); if remove_status.is_ok() { println!("Test directory deleted."); - } else { + }else { panic!("Error deleting directory."); } } diff --git a/solutions/24_file_io/file_io2.rs b/solutions/24_file_io/file_io2.rs index e700bcfa..b8363874 100644 --- a/solutions/24_file_io/file_io2.rs +++ b/solutions/24_file_io/file_io2.rs @@ -7,24 +7,20 @@ const TEST_OUTPUT_FILE_NAME: &str = "MultiLineOutputFile.txt"; fn main() { create_required_files(); - let input_file = fs::File::open(TEST_INPUT_FILE_NAME); - if input_file.is_err() { - panic!("Input file open error"); - } + let input_file = match fs::File::open(TEST_INPUT_FILE_NAME) { + Ok(f) => f, + Err(e) => panic!("Input file open error : {}", e), + }; - let buffered_input_file = BufReader::new(input_file.unwrap()); + let buffered_input_file = BufReader::new(input_file); - let output_file = fs::File::create(TEST_OUTPUT_FILE_NAME); + let output_file = match fs::File::create(TEST_OUTPUT_FILE_NAME) { + Ok(f) => f, + Err(e) => panic!("Output file open error : {}", e), + }; - if output_file.is_err() { - eprintln!( - "Output file open error : {}", - output_file.as_ref().unwrap_err() - ); - panic!("Output file open error"); - } - let mut buffered_file_writer = BufWriter::new(output_file.ok().unwrap()); + let mut buffered_file_writer = BufWriter::new(output_file); let mut line_number = 1; diff --git a/solutions/24_file_io/file_io3.rs b/solutions/24_file_io/file_io3.rs index 90fb47da..dc1b4e9b 100644 --- a/solutions/24_file_io/file_io3.rs +++ b/solutions/24_file_io/file_io3.rs @@ -10,18 +10,18 @@ fn main() { let meta_data_result = path_buffer.metadata(); - if let Ok(meta_data) = meta_data_result { - println!("Metadata about the file : {:?}", path_buffer); - println!("File creation time {:?}", meta_data.created()); - println!("File size {}", meta_data.len()); - assert_eq!(meta_data.len(), 117); - println!("File permissions {:?}", meta_data.permissions()); - assert!(!meta_data.permissions().readonly()); - } else { - eprintln!( - "Could not get metadata. Error: {:?}", - meta_data_result.err() - ); + match meta_data_result { + Ok(meta_data) => { + println!("Metadata about the file : {:?}", path_buffer); + println!("File creation time {:?}", meta_data.created()); + println!("File size {}", meta_data.len()); + assert_eq!(meta_data.len(), 117); + println!("File permissions {:?}", meta_data.permissions()); + assert!(!meta_data.permissions().readonly()); + } + Err(error) => { + eprintln!("Could not get metadata. Error: {:?}", error); + } } file_cleanup();