Java Collections Framework and Threads - BufferedReader and a StringTokenizer - Specified at Runtime - IT and Computer Science Assignment Help

Download Solution Order New Solution
Assignment Task
Java Collections Framework and Threads IT and Computer Science Assignment Help

Building Indices:

In this project, you will be working with input, output, classes in the Java Collections Framework and threads. You are expected to investigate the Java library and use the classes and methods in the Collections library as much as possible. You will also need to look into the File class to see how to use folders and files. I would encourage you to use the Scanner class to read in data from the files as it is very easy to use. However, a BufferedReader and a StringTokenizer will provide you with better runtimes for very large files.

In short, you are creating a word index in a few different ways. An index helps you find information in your files faster. An index can also be very useful when comparing how similar two documents are to one another. One way of determining how similar two documents are is to compare the number of uncommon words they share. This might be useful in a recommender type system. For example, if I really like a book that often contains the words California, surfing, sunshine, and beach, then odds are good I will like another book that contains a similar number of those keywords.


You must implement the following steps:

1. You will write a program that goes through a text file and creates a word index of every word in the file. The index will be the “page” that a particular word is found on. Since a text file only contains text and does not contain any metadata, “pages” will be created depending on the number of characters read in so far (not including delimiters). The number of characters that define a page will be specified at runtime.


2. The user will specify 3 command-line arguments. The first argument is the folder where all of the text files are saved, the second argument is the output folder that the output file(s) will be stored to and the third argument is the number of characters that represent a page.

2.a. Assuming the java file is called Index.java, the following command: java Index myFolder output folder 100 would indicate that all input files are stored in a folder called myFolder that is in the same folder as your Java class file. All of the input text files are in myFolder. All text files that you need to account for will have an extension of .txt. Only *.txt files will be in the input folder. The second argument is what folder you will store your output files to. You can assume this empty
output folder has already been created. The third argument is the number of characters on a page. Assume that number is K. The number of characters on each page goes up to but doesn’t exceed K actual characters. For instance, if K is 100 and you have read in 98 actual characters so far and the next word is a badger, the word badger would be the first word on the next page (do not split up the word and put part of it on one page and the other part on another page). To make this a bit easier, you must ignore delimiter characters with respect to the number of characters on a page. You can assume that no 1 word will be longer than the number of characters on a page. In this example, no word will be more than 100 characters.


3. Create a word index of each file and store that index into an output file. If your input file is called a.txt, then your output file must be called a_output.txt and
your output will be stored in the output folder that was specified. You will create an output file for each input file. Your word index should be created in the following way:

3.a. Read in all words. A word is any consecutive sequence of letters, numbers, apostrophes, special symbols, etc. The only things that delimit words are space, tab and newline (i.e. whitespace). In my sample files, I am using the default delimiters specified by the Scanner class. If you use something different, you may get different results. You should store the words into one of the following Collections: TreeSet, HashSet, TreeMap or HashMap. If you don’t, your code will likely run very slow. All words are case insensitive. For example, the words cat, Cat, CAT, and cAT have all considered the same word. Punctuation and other symbols are not to be filtered out. Therefore, cat: and cat are two separate words (note the colon after the first cat).

3.b. Along with reading in all of the words, remember which “page” the word was on. We will start counting on page 1.

3.c. For each file, after you have read in all of the words, you should write out your word index to that files output file. You should write out each word that appears in the file and for each word that you write out, you must also write what page(s) that word appears on. You must write out the words in alphabetical order and only put 1 word per line. Assume the word cat appears on pages 4, 10 and 16, your output should be formatted in the following fashion:
cat 4, 10, 16 In other words, it is the word, followed by a space, followed by the page(s) that word appeared on where each page is separated by a comma (see sample input/output). Page numbers must appear in ascending order. Words that appear multiple times on the same page should not show up multiple times in the final output. For example, if the word cat appears on page 4 a total of 3 times, page 4 should only show up once in the output.
 

This IT and Computer Science Assignment has been solved by our IT and Computer Science experts at My Uni Paper. Our Assignment Writing Experts are efficient to provide a fresh solution to this question. We are serving more than 10000+ Students in Australia, UK & US by helping them to score HD in their academics. Our experts are well trained to follow all marking rubrics & referencing style.

Be it a used or new solution, the quality of the work submitted by our assignment experts remains unhampered. You may continue to expect the same or even better quality with the used and new assignment solution files respectively. There’s one thing to be noticed that you could choose one between the two and acquire an HD either way. You could choose a new assignment solution file to get yourself an exclusive, plagiarism (with free Turnitin file), expert quality assignment or order an old solution file that was considered worthy of the highest distinction.

Get It Done! Today

Country
Applicable Time Zone is AEST [Sydney, NSW] (GMT+11)
+

Every Assignment. Every Solution. Instantly. Deadline Ahead? Grab Your Sample Now.