Need help with this java code. fill in lines where needed. Also, not sure how to make the text
files and load them into program. Thanks!!
Create a package named \"reading_with_exceptions\". Write a class named:
Reading_With_Exceptions with the following method:
void process(String inputFilename)
Your program will encounter errors, and we want you to gracefully handle them in such a way
that you print out informative information and continue executing.
Your process routine will try to open a file with the name of inputFilename for input. If there is
any problem (i.e. the file doesn\'t exist), then you should catch the exception, give an appropriate
error and then return. Otherwise, your program reads the file for instructions.
Your process routine will read the first line of the file looking for an outputFilename String
followed by an integer. i.e.:
outputFilename number_to_read
Your program will want to write output to a file having the name outputFilename. Your program
will try to read from \"inputFilename\" the number of integers found in \"number_to_read\".
Your process method will copy the integers read from inputFilename and write them to your
output file(i.e. outputFilename). There should contain 10 numbers per line of output in your
output file.
If you encounter bad input, your program should not die with an exception. For example:
If the count of the numbers to be read is bad or < 0 you will print out a complaint message and
then read as many integers as you find.
If any of the other numbers are bad, print a complaint message and skip over the data
If you don\'t have enough input numbers, complain but do not abort
After you have processed inputFilename, I would like your program to then close the output file
and tell the user that the file is created. Then Open up the output file and copy it to the Screen.
For example, if inputFilename contained:
We would expect the output of your program to be (Note that after 23 numbers we stop printing
numbers):
The main program will access the command line to obtain the list of filenames to call your
process routine with.
For those of you who benefit from a Template, your program might look like:
To prove that your program works, I want you to run your program with the following command
line parameters:
file1.txt non-existent-file file2.txt file3.txt
Where non-existent-file does not exist.
file1.txt contains:
file2.txt contains:
file3.txt contains:
Solution
// Reading_With_Exceptions.java
import java.io.File; // required imports for the code
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Scanner;
public class Reading_With_Exceptions
{ // class that runs the code
// 1.) Create a Scanner from the inputFilename. Catch exceptions from errors.
// 2.) Read the first String from the file and use it to create a PrintStream
// catching appropriate exceptions
// 3.) Using hasNextInt and nextInt, carefully re.
Need help with this java code. fill in lines where needed. Also, not.pdf
1. Need help with this java code. fill in lines where needed. Also, not sure how to make the text
files and load them into program. Thanks!!
Create a package named "reading_with_exceptions". Write a class named:
Reading_With_Exceptions with the following method:
void process(String inputFilename)
Your program will encounter errors, and we want you to gracefully handle them in such a way
that you print out informative information and continue executing.
Your process routine will try to open a file with the name of inputFilename for input. If there is
any problem (i.e. the file doesn't exist), then you should catch the exception, give an appropriate
error and then return. Otherwise, your program reads the file for instructions.
Your process routine will read the first line of the file looking for an outputFilename String
followed by an integer. i.e.:
outputFilename number_to_read
Your program will want to write output to a file having the name outputFilename. Your program
will try to read from "inputFilename" the number of integers found in "number_to_read".
Your process method will copy the integers read from inputFilename and write them to your
output file(i.e. outputFilename). There should contain 10 numbers per line of output in your
output file.
If you encounter bad input, your program should not die with an exception. For example:
If the count of the numbers to be read is bad or < 0 you will print out a complaint message and
then read as many integers as you find.
If any of the other numbers are bad, print a complaint message and skip over the data
If you don't have enough input numbers, complain but do not abort
After you have processed inputFilename, I would like your program to then close the output file
and tell the user that the file is created. Then Open up the output file and copy it to the Screen.
For example, if inputFilename contained:
We would expect the output of your program to be (Note that after 23 numbers we stop printing
numbers):
The main program will access the command line to obtain the list of filenames to call your
process routine with.
For those of you who benefit from a Template, your program might look like:
To prove that your program works, I want you to run your program with the following command
line parameters:
2. file1.txt non-existent-file file2.txt file3.txt
Where non-existent-file does not exist.
file1.txt contains:
file2.txt contains:
file3.txt contains:
Solution
// Reading_With_Exceptions.java
import java.io.File; // required imports for the code
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Scanner;
public class Reading_With_Exceptions
{ // class that runs the code
// 1.) Create a Scanner from the inputFilename. Catch exceptions from errors.
// 2.) Read the first String from the file and use it to create a PrintStream
// catching appropriate exceptions
// 3.) Using hasNextInt and nextInt, carefully read the count integer.
// I recommend -1 for a count value if it is bad to indicate reading ALL
// 4.) Use copyNumbers method described below to complete the job
// 5.) Close Scanner and PrintStream objects
// 6.) Call printToScreen to copy the output file to the screen
void process(String inputFilename)
{ // method that does the processing of the file
int number_to_read = 0;
File file = new File(inputFilename); // reading it to a file as the input form is a string name
try
{
String outputFilename;
PrintStream os;
try (Scanner input = new Scanner(file))
{ // checking or reading the unput file
outputFilename = input.next();
3. os = new PrintStream(new FileOutputStream(outputFilename)); // saving the firstline to a output
filename
if (input.hasNextInt())
{ // checking for the data in the file
number_to_read = input.nextInt();
} else
{
number_to_read = -1;
}
copyNumbers(input, os, number_to_read);
}
os.close(); // closing the stream class
printToScreen(outputFilename); // calling the method to print the data from the output file
} catch (FileNotFoundException e)
{ // catching the exceptions
System.out.println("Cannot find file: " + e);
}
}
// The following routine is called to complete the job of copying integers to
// the output file:
// scan - a Scanner object to copy integers from
// ps - A PrintStream to write the integers to
// numIntsToRead - number of integers to read. A value of -1 ==> read all integers
void copyNumbers(Scanner scan, PrintStream ps, int numIntsToRead)
{ // method to copy the data to the file
// hasNext() can be used to see if the scan object still has data
// Note that hasNextInt() can be used to see if an integer is present
// nextInt() will read an integer
// next() can be used to skip over bad integers
if (numIntsToRead < 0)
{
//print out a complaint message and then read as many integers as you find.
System.out.println("A Message Indicating that reading all the data from the file.");
while(scan.hasNextInt())
{
int readNum = scan.nextInt();
4. ps.print(readNum);
ps.print(" ");
ps.flush();
System.out.println(" Completed Reading the Data.! ");
}
}
else if (!scan.hasNextInt())
{
// print a complaint message and skip over the data
System.out.println(" No Data Present in the File to Read.! ");
scan.nextLine();
}
else
{
for(int i = 0; i < numIntsToRead; i++)
{
if(scan.hasNextInt())
{
int x = scan.nextInt();
ps.println(x);
}
else
{
System.out.println("There was a total of " + i + " ints found, and a total of " +
numIntsToRead + " specified to read. Reading has completed.");
}
}
}
}
public static void main(String[] args)
{
Reading_With_Exceptions rwe = new Reading_With_Exceptions();
for (int i=0; i < args.length; i++)
{
System.out.println(" =========== Processing "+ args[i] + " ========== ");
rwe.process(args[i]);
5. }
}
// For the last step, we Copy the contents of the file to the screen
private void printToScreen(String filename)
{ // method to print the data to the screen
Scanner scan = null;
try
{
FileInputStream fis = new FileInputStream(filename);
scan = new Scanner(fis);
System.out.println("Data Present in the Output File is : ");
while (scan.hasNextLine())
{
System.out.println(scan.nextLine());
}
} catch (FileNotFoundException e)
{
System.out.println("printToScreen: can't open: " + filename);
} finally
{
if (scan != null)
{
scan.close();
}
}
}// end of printToScreen
}
/*
file1.txt
MyOutput1.txt 22
20 1 4 5 7 8 9 10 11 12 13 14
45 46 47 48 49 50 51
1 2 3 4 5 6 7 8 9 77 88 99 23 34