1-
21use std:: fs;
32use std:: io:: { BufRead , BufReader , BufWriter , Write } ;
43use std:: path:: Path ;
54
65const TEST_FILE_NAME : & str = "MultiLineTextFile.txt" ;
76
87fn main ( ) {
9-
108 create_required_files ( ) ;
119 let input_file = fs:: File :: open ( TEST_FILE_NAME ) ;
1210
1311 if input_file. is_err ( ) {
14- eprintln ! ( "Input file open error : {}" , input_file. as_ref( ) . unwrap_err( ) ) ;
15- assert ! ( false ) ;
12+ panic ! ( "Input file open error" ) ;
1613 }
1714
18- // TODO : How to create a new BufReader using input file
19- let buffered_input_file =;
15+ let buffered_input_file = BufReader :: new ( input_file. unwrap ( ) ) ;
2016
2117 let output_file = fs:: File :: create ( "MultiLineOutputFile.txt" ) ;
2218
2319 if output_file. is_err ( ) {
24- eprintln ! ( "Output file open error : {}" , output_file. as_ref( ) . unwrap_err( ) ) ;
25- assert ! ( false ) ;
20+ eprintln ! (
21+ "Output file open error : {}" ,
22+ output_file. as_ref( ) . unwrap_err( )
23+ ) ;
24+ panic ! ( "Output file open error" ) ;
2625 }
27- let mut buffered_file_writer = BufWriter :: new ( output_file. ok ( ) . unwrap ( ) ) ;
26+ // TODO : How to create a new BufReader using input file
27+ let buffered_input_file =;
2828
2929 let mut line_number = 1 ;
30- let mut lines = buffered_input_file . lines ( ) ;
31- while let Some ( line) = lines . next ( ) {
30+
31+ for line in buffered_input_file . lines ( ) {
3232 if let Ok ( line) = line {
33- let write_result = buffered_file_writer. write ( format ! ( "Line {} : {}\n " , line_number, line) . as_bytes ( ) ) ;
33+ let write_result =
34+ buffered_file_writer. write ( format ! ( "Line {} : {}\n " , line_number, line) . as_bytes ( ) ) ;
3435 if write_result. is_err ( ) {
3536 eprintln ! ( "Write result error: {}" , write_result. unwrap_err( ) ) ;
3637 break ;
3738 }
3839 line_number += 1 ;
39- } else {
40- eprintln ! ( "Write line error : {}" , line_number) ;
41- assert ! ( false ) ;
40+ } else {
41+ panic ! ( "Write line error" ) ;
4242 }
43-
4443 }
4544
4645 println ! ( "{} : lines processed" , line_number - 1 ) ;
4746}
4847
49- fn create_required_files ( ) {
48+ fn create_required_files ( ) {
5049 let file_path = Path :: new ( TEST_FILE_NAME ) ;
5150
52- if file_path. exists ( ) == false {
51+ if ! file_path. exists ( ) {
5352 let text = "This is the first line of the text.
5453 This is the second line.
5554 And this is the third and the last line." ;
56- fs:: write ( & file_path, text) . unwrap ( ) ;
55+ fs:: write ( file_path, text) . unwrap ( ) ;
5756 println ! ( "File created." ) ;
5857 }
59-
60- }
58+ }
0 commit comments