-
Notifications
You must be signed in to change notification settings - Fork 0
/
generate.java
61 lines (49 loc) · 1.89 KB
/
generate.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.lang.Math;
/*
|-----------------------------------|
|------------Basic Shell------------|
|-----------generate.java-----------|
|-----------------------------------|
|>> Role : Generates two random |
|integer values |
|>> Shell Command : 'generate'. |
|>> Arguments : None. |
|>> Pipe Support : Output Only |
\-----------------------------------/
*/
class generate {
// Main Function
public static void main(String args[]) {
// Argument passed by the shell is either 'nopipe' or 'pipeout'
// If 'nopipe' : Generated values will be displayed by the shell
// If 'pipeout' : Generated values will be passed as arguments to another command using pipes & stdout
if (args[0].equals("nopipe")) {
// Generate two random integers in the [0,9] range and print them on the shell
double rd = Math.random();
rd = rd * 10;
int randomInt = (int) rd;
System.out.println(randomInt);
rd = Math.random();
rd = rd * 10;
randomInt = (int) rd;
System.out.println(randomInt);
} else if (args[0].equals("pipeout")) {
// Generate two random integers in the [0,9] range, convert them to strings, and pass them to stdout
double rd = Math.random();
rd = rd * 10;
int randomInt1 = (int) rd;
rd = Math.random();
rd = rd * 10;
int randomInt2 = (int) rd;
try {
BufferedWriter log = new BufferedWriter(new OutputStreamWriter(System.out));
log.write(String.valueOf(randomInt1) + " " + String.valueOf(randomInt2));
log.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}