CS 1705 Library

cs1705
Class IOHelper

java.lang.Object
  extended by cs1705.IOHelper

public class IOHelper
extends Object

This class provides several static methods that streamline the use of basic I/O operations in Java. It is designed to work seamlessly within the BlueJ environment, but is equally applicable in any other IDE or for standaline applications. It is designed to make it simple to use Scanner and PrintWriter for basic input and string-based output.

This class is based on Petr Skoda's "Beginner's IOHelper for BlueJ" (@href{http://www.rdv.vslib.cz/skodak}).

Version:
2007.08.12
Author:
Stephen Edwards (based on Petr Skoda's original)

Method Summary
static BufferedReader createBufferedReader(File file)
          Creates an instance of BufferedReader that can be used to read from the given file.
static BufferedReader createBufferedReader(String pathname)
          Creates an instance of BufferedReader that can be used to read from the file referred to by the given name.
static BufferedReader createBufferedReader(URL url)
          Creates an instance of BufferedReader that can be used to read from a URL over the net.
static BufferedReader createBufferedReaderForString(String s)
          Creates an instance of BufferedReader that can be used to read directly from a given text string.
static BufferedReader createBufferedReaderForURL(String url)
          Creates an instance of BufferedReader that can be used to read from a URL given as a text string.
static PrintWriter createConsoleWriter()
          Creates and returns an instance of PrintWriter that can be used to write to the console.
static BufferedReader createKeyboardReader()
          Creates and returns an instance of BufferedReader that can be used to read from the keyboard.
static Scanner createKeyboardScanner()
          Creates and returns a Scanner that can be used to read from the keyboard.
static PrintWriter createPrintWriter(File file, boolean append)
          Creates an instance of PrintWriter that can be used to write to the given file.
static PrintWriter createPrintWriter(String pathname)
          Creates an instance of PrintWriter that can be used to write to the file referred to by the given name.
static PrintWriter createPrintWriter(String pathname, boolean append)
          Creates an instance of PrintWriter that can be used to write to the file referred to by the given name.
static Scanner createScanner(File file)
          Creates a Scanner that can be used to read from the given file.
static Scanner createScanner(String pathname)
          Creates a Scanner that can be used to read from the file referred to by the given name.
static Scanner createScanner(URL url)
          Creates a Scanner that can be used to read from a URL over the net.
static Scanner createScannerForString(String s)
          Creates a Scanner that can be used to read directly from a given text string.
static Scanner createScannerForURL(String url)
          Creates a Scanner that can be used to read from a URL given as a text string.
static File getCurrentWorkingDirectory()
          Returns current working directory.
static File getFile(File pathname)
          Takes an existing file and, if it contains a relative path name, it is resolved against the current working directory.
static File getFile(String pathname)
          Creates a new File instance from a relative or an absolute pathname.
static void setCurrentWorkingDirectory(File newCwd)
          Changes the current working directory (for the purposes of future calls to IOHelper methods).
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getCurrentWorkingDirectory

public static File getCurrentWorkingDirectory()
Returns current working directory. In BlueJ, the currect directory is undefined and can not be set, so the directory of the current project is returned instead.

Returns:
current working directory

setCurrentWorkingDirectory

public static void setCurrentWorkingDirectory(File newCwd)
Changes the current working directory (for the purposes of future calls to IOHelper methods). This doesn't actually change the JVM process' notion of the current working directory, but does change the directory that other methods in this class use for locating all relative path names.

Parameters:
newCwd - The new current working directory

getFile

public static File getFile(String pathname)
Creates a new File instance from a relative or an absolute pathname. If given a relative path, it is resolved against the current working directory. In BlueJ, the directory of the current project is used as the working directory for resolving relative paths. Absolute path names are left unaltered.

Parameters:
pathname - a relative or absolute pathname
Returns:
instance of File referring to the specified path

getFile

public static File getFile(File pathname)
Takes an existing file and, if it contains a relative path name, it is resolved against the current working directory. In BlueJ, the directory of the current project is used as the working directory for resolving relative paths. Absolute path names are left unaltered.

Parameters:
pathname - a relative or absolute pathname as a File object
Returns:
instance of File referring to the specified path

createKeyboardReader

public static BufferedReader createKeyboardReader()
Creates and returns an instance of BufferedReader that can be used to read from the keyboard. To enter text, you usually have to switch to some console in your IDE. Also, remember not to close the keyboard reader. The BufferedReader.readLine() method blocks until the user hits enter.

This method is provided to support older code, but writers of newer code should consider createKeyboardScanner() instead.

Returns:
instance of BufferedReader for reading from keyboard

createKeyboardScanner

public static Scanner createKeyboardScanner()
Creates and returns a Scanner that can be used to read from the keyboard. This is just a convenience method for uniformity, since the Scanner class provides a constructor that can take System.in as a parameter. To enter text, you usually have to switch to some console in your IDE. Also, remember not to close the keyboard scanner. The Scanner.nextLine() method blocks until the user hits enter.

Returns:
instance of Scanner for reading from keyboard

createBufferedReader

public static BufferedReader createBufferedReader(File file)
Creates an instance of BufferedReader that can be used to read from the given file.

This method is provided to support older code, but writers of newer code should consider createScanner(File) instead.

Parameters:
file - the file to read from
Returns:
instance of BufferedReader for reading from the file
Throws:
IOException - if there is an error opening the file

createScanner

public static Scanner createScanner(File file)
Creates a Scanner that can be used to read from the given file. This is just a convenience method for uniformity, since the Scanner class provides a constructor that can take System.in as a parameter. Turns any IOException that is raised into a RuntimeException so that it does not have to be placed inside a try/catch block.

Parameters:
file - the file to read from
Returns:
instance of Scanner for reading from the file

createBufferedReader

public static BufferedReader createBufferedReader(String pathname)
Creates an instance of BufferedReader that can be used to read from the file referred to by the given name.

This method is provided to support older code, but writers of newer code should consider createScanner(String) instead.

Parameters:
pathname - a relative or absolute pathname indicating the file to read from
Returns:
instance of BufferedReader for reading from the named file
Throws:
IOException - if there is an error opening the file

createScanner

public static Scanner createScanner(String pathname)
Creates a Scanner that can be used to read from the file referred to by the given name. Turns any IOException that is raised into a RuntimeException so that it does not have to be placed inside a try/catch block.

Parameters:
pathname - a relative or absolute pathname indicating the file to read from
Returns:
instance of Scanner for reading from the named file

createBufferedReader

public static BufferedReader createBufferedReader(URL url)
Creates an instance of BufferedReader that can be used to read from a URL over the net.

This method is provided to support older code, but writers of newer code should consider createScanner(URL) instead.

Parameters:
url - the URL to read from
Returns:
instance of BufferedReader for reading from the URL
Throws:
IOException - if there is an error opening the URL

createScanner

public static Scanner createScanner(URL url)
Creates a Scanner that can be used to read from a URL over the net. Turns any IOException that is raised into a RuntimeException so that it does not have to be placed inside a try/catch block.

Parameters:
url - the URL to read from
Returns:
instance of Scanner for reading from the URL

createBufferedReaderForURL

public static BufferedReader createBufferedReaderForURL(String url)
Creates an instance of BufferedReader that can be used to read from a URL given as a text string.

This method is provided to support older code, but writers of newer code should consider createScannerForURL(String) instead.

Parameters:
url - a string denoting a URL to read from
Returns:
instance of BufferedReader for reading from the given URL
Throws:
IOException - if there is an error opening the URL or the url is syntactically incorrect

createScannerForURL

public static Scanner createScannerForURL(String url)
Creates a Scanner that can be used to read from a URL given as a text string. Turns any MalformedURLException or other IOException that is raised into a RuntimeException so that it does not have to be placed inside a try/catch block.

Parameters:
url - a string denoting a URL to read from
Returns:
instance of Scanner for reading from the given URL

createBufferedReaderForString

public static BufferedReader createBufferedReaderForString(String s)
Creates an instance of BufferedReader that can be used to read directly from a given text string.

This method is provided to support older code, but writers of newer code should consider createScannerForString(String) instead.

Parameters:
s - the string to read from
Returns:
instance of BufferedReader for reading from the given string

createScannerForString

public static Scanner createScannerForString(String s)
Creates a Scanner that can be used to read directly from a given text string. This is just a convenience method for uniformity, since the Scanner class provides a constructor that can take a String as a parameter.

Parameters:
s - the string to read from
Returns:
instance of Scanner for reading from the given string

createConsoleWriter

public static PrintWriter createConsoleWriter()
Creates and returns an instance of PrintWriter that can be used to write to the console. Normally, System.out is easy enough to use for basic information. However, this method makes it easier to write I/O-based classes that use PrintWriter in their interface, but are still capable of writing to the screen as well as to a file.

Returns:
instance of PrintWriter for writing to the console

createPrintWriter

public static PrintWriter createPrintWriter(File file,
                                            boolean append)
Creates an instance of PrintWriter that can be used to write to the given file. If the file does not exist, it will be created if possible (including any necessary parent directories that do not exist).

Parameters:
file - the file to write to
append - true means preserve any existing file contents and start write at the end of the current file, while false means to delete any existing content first and start writing from scratch.
Returns:
instance of PrintWriter for writing to the given file

createPrintWriter

public static PrintWriter createPrintWriter(String pathname,
                                            boolean append)
Creates an instance of PrintWriter that can be used to write to the file referred to by the given name. If the file does not exist, it will be created if possible (including any necessary parent directories that do not exist).

Parameters:
pathname - a relative or absolute pathname indicating the file to write to
append - true means preserve any existing file contents and start write at the end of the current file, while false means to delete any existing content first and start writing from scratch.
Returns:
instance of PrintWriter for writing to the given file

createPrintWriter

public static PrintWriter createPrintWriter(String pathname)
Creates an instance of PrintWriter that can be used to write to the file referred to by the given name. If the file does not exist, it will be created if possible (including any necessary parent directories that do not exist). If the file does exist, it will be overwritten.

Parameters:
pathname - a relative or absolute pathname indicating the file to write to
Returns:
instance of PrintWriter for writing to the given file

Last updated: Wed, Apr 1, 2009 • 12:29 AM EDT

Copyright © 2009 Virginia Tech.