75.6k views
4 votes
Write a program that reads a file containing text. Read each line and send it to the output file, preceded by line numbers. If the input file is Mary had a little lamb Whose fleece was white as snow. And everywhere that Mary went, The lamb was sure to go! then the program produces the output file /* 1 */ Mary had a little lamb /* 2 */ Whose fleece was white as snow. /* 3 */ And everywhere that Mary went, /* 4 */ The lamb was sure to go! The line numbers are enclosed in /* */ delimiters so that the program can be used for numbering Java source files. Prompt the user for the input and output file names.

1 Answer

6 votes

Answer:

I am writing a JAVA program:

import java.io.FileReader; // class used for reading data from a file

import java.io.IOException; //class used for handling exceptions

import java.io.PrintWriter; // class used to printing or writing formatted data. It is used when the data to be written contains text and numbers

import java.util.Scanner; // class used to take input from the user

public class Main { //start of the class

public static void main(String[] args) {//start of main() function body

Scanner input = new Scanner(System.in); //creates Scanner class object

System.out.print("Enter the input file name: "); // prompts user to enter the input file name

String input_file = input.next(); //to read and return the token i.e. input file name and store this into input_file String type variable

System.out.print("Enter the output file name: "); // prompts user to enter the output file name

String output_file = input.next(); /to read and return the token i.e. output file name and store this into output_file String type variable

try {/* try defines a chunk of code to be tested for errors during the execute of this chunk. its a code block for reading from input file and writing to output file. This handles the exception if program cannot create or write to the file indicated. */

FileReader inFile = new FileReader(input_file); //creates object inFile of FileReader class to read the input_file contents

Scanner scan = new Scanner(inFile); //read and scans the input file

PrintWriter outFile = new PrintWriter(output_file); //creates object outFile of PrintWriter class to write to the output file. It is used to write output data in a readable text form.

int count = 1; //counts the line number

while (scan.hasNextLine()) { //loop keeps checking for the next line in input file

String lines = scan.nextLine(); // reads the entire line of the input file and stores that line contents in String lines

outFile.println("/* " + count + " */ " + lines); //each line represented with line number enclosed in /* */

count++; } //increments the line number at each iteration

outFile.close(); } //closes the output file after writing the contents from input file with each line of the input file enclosed in /* */

catch (IOException e) { // catching the IOException and prints the following message if program cannot create input_file or write to the output_file

System.out.println("Error processing file: " + e); } } }

Step-by-step explanation:

The program is well explained in the comments mentioned with each statement of the above program. The user is prompted to enter input and output file names. Then the program uses a while loop that scans through lines of the input file and count variable counts each line of input file. Then at each iteration the count variable counts a line of input file and line number of each line of the input file is enclosed in /* */ delimiters. The contents of input file, in which the line numbers of text lines of the input file are enclosed in /* */ delimiters, is written to the output file.

The screenshot of the program is attached along with the output file produces as a result of this program execution.

Write a program that reads a file containing text. Read each line and send it to the-example-1
Write a program that reads a file containing text. Read each line and send it to the-example-2
User Rishabh Rajgarhia
by
7.7k points