created 05/08/00

Programming Exercises

Exercise 1 --- Random Integer Data

Write a program that creates a file containing TotalCount random integers (in character format) in the range 0 to HighValue-1. Write PerLine integers per line. Separate each integer with one space. End each line with the correct line termination for your computer.

The user is prompted for and enters HighValue, which should be an integer larger than zero. Then the user is prompted for and enters PerLine, which is an integer greater than zero, and TotalCount, which also is an integer greater than zero. Finally the user is prompted for and enters the file name.

Use a BufferedWriter with a FileWriter for output. Construct a Random object and use its method nextInt(int Top), which returns an int in the range 0..Top-1.

```C:\Programs>java  RandomIntData
Enter HighValue-->100
Enter how many per line-->10
Enter how many integers-->100
Enter Filename-->rdata.dat

C:\Programs>type rdata.dat
4 12 54 10 38 97 40 11 80 16
36 41 67 67 93 58 62 12 50 99
18 42 9 28 45 6 68 72 80 28
86 63 22 17 68 18 59 50 6 50
90 8 68 61 9 24 77 34 62 61
63 8 15 17 67 58 34 56 12 50
43 85 39 77 30 68 89 88 65 68
84 29 42 74 48 55 19 82 95 3
39 27 25 96 41 39 18 84 39 88
82 58 84 90 74 35 24 89 85 92
```

Exercise 2 --- Buffer test

The previous program used a BufferedWriter between the program and the FileWriter stream. Using a buffer is supposed to increase the efficiency of the program. Does it?

Modify the previous program so that it does not use newLine() (but still uses BufferedWriter). Use it to create a file of 1,000,000 integers. Time how long this takes with a watch.

Now modify the program by removing the BufferedWriter. Again create a file of 1,000,000 integers and time how long it takes. Is there a difference? (On my system there was a sizeable difference.) Be sure that the two versions use exactly the same logic. That is why the newLine() method has to be removed.

Exercise 3 --- HTML Power of 2 Table

Write a program that creates a text file that contains a power of two table in HTML format. The file could be called "twoPowerTable.html". When it is viewed with a browser you will see something like:

Power of 2Value
01
12
24
38
416
532
664
7128
8256
9512
101024

```<html><head>
<title>Powers of Two</title>
<body>
<tr><th>Power of 2</th><th>Value</th></tr>
```

And end with:

```</table>
</body></html>
```

Each line of the table looks like:

```<tr><td>0</td><td>1</td></tr>
```

Look at the HTML tutorial at the end of these notes if you are interested.