Write a Java program to imitate a file system of an operating system.
In your solution, design a class called BasicFile with options to carry out the following operations:
(a) Select and open an input file using a file dialog box.
(b) Make a copy of the file, whether it is a text file or an image file.
(c) Write to an output file with the option of either appending to the file, or over-writing the contents of the file.
(d) Display the following attributes of the input file in a scrollable screen:
(e) Display the contents of the input file in a scrollable pane.
(f) Search the input file line by line for a given string. The output must contain the line number, followed by the contents of the line that contains the search argument. For instance given the following the search string: Java, the program would search the file line by line generating a result such as the following:
50: on the island of Java
95: The people of JAVA loves jaVa.
(g) Tokenize the input file so that program recognizes all printable characters on the keyboard.
You may utilize the classes BasicFile and TestBasicFile in the textbook as a source of reference.