Translating Scanner tokens into primitive types

The Scanner class can be used to break an input into tokens separated by delimiters. Scanner also has methods to translate each token into one of Java’s primitive types. Delimiters are string patterns and are set in the following way: Scanner s = new Scanner(input); s.useDelimiter(pattern); If we need to read a file containing a set of integers, and calculate the total, we can use Scanner’s nextInt method: int sum = 0; //create a new instance of Scanner Scanner s = new Scanner( new BufferedReader( new FileReader("in....

April 29, 2017 · 1 min · Rezha Julio

Listing a file system's root directories

Using the static FileSystems class, you can get the default FileSystem (note the missing s) through the getDefault() method. The getRootDirectories() method of FileSystem can be used to acquire a list of root directories on a file system. An object of type Iterable is returned, so the directories can be iterated over in the following way: FileSystem sys = FileSystems.getDefault(); Iterable<Path> d = sys.getRootDirectories(); for (Path name: d) { System.out.println(name); } This is available from Java 1....

April 28, 2017 · 1 min · Rezha Julio

The Console class

The Java.io.Console class provides methods to access the character-based console device, if any, associated with the current Java Virtual Machine. This class is attached to the System console internally. Console class provide means to read text and passwords from the console. To read a line as a String: Console console = System.console(); String myString = console.readLine(); To read a password as an array of chars: Console console = System.console(); char[] pw = console....

April 27, 2017 · 1 min · Rezha Julio

Using an interface as a parameter

You can define methods that take an interface as a parameter. Your interface defines a contract and your methods will accept as parameter any objects whose class implements that interface. This is in fact one of the most common and useful ways to use an interface. interface Test { public void test(); //define the interface } class Tester { public void runTest(Test t) { t.test(); } // method with interface as param } MyTest class will implement this interface:...

April 20, 2017 · 1 min · Rezha Julio

Using bounded type parameters in generic methods

Sometimes it may be appropriate to write a generic method, however it will not be possible for it to accept every type while still maintaining all the necessary functionality. To solve this, use bounded type parameters to restrict generic methods from accepting arguments of a particular kind. public <T extends Shape> void drawAll(List<T> shapes){ for (Shape s: shapes) { s.draw(this); } } The above method is used to draw a list of shapes....

April 19, 2017 · 1 min · Rezha Julio