137 lines
4.3 KiB
Java
137 lines
4.3 KiB
Java
A utility class for reading and writing character files
|
|
|
|
package com.ack.util;
|
|
|
|
import java.io.*;
|
|
|
|
/**
|
|
* a utility class for reading and writing character
|
|
* files to and from to disk. If you want to deal
|
|
* exclusively in bytes, use the ByteLoader class
|
|
* in this package.
|
|
*
|
|
* Note that all methods in the FileUtil will read/write
|
|
* entire contents of all supplied Readers and Writers
|
|
* and alway close them before returning.
|
|
*
|
|
* @see com.ack.util.ByteLoader
|
|
*/
|
|
|
|
public class FileUtil {
|
|
private static final int kFILEBUFSIZE = 128;
|
|
private static FileUtil fSingleton;
|
|
|
|
/**
|
|
* get hold of the singleton instance of FileUtil
|
|
*
|
|
* @return the singleton FileUtil
|
|
*/
|
|
public static synchronized FileUtil instance() {
|
|
if( fSingleton == null )
|
|
fSingleton = new FileUtil();
|
|
return fSingleton;
|
|
}
|
|
|
|
/**
|
|
* read the supplied file in its entirety into a string
|
|
*
|
|
* @param the filename to read characters from
|
|
* @return a string holding the file contents
|
|
* @exception IOException reports problems that occurred
|
|
*/
|
|
public String readCharacterFile( String fileName ) throws IOException {
|
|
if( fileName == null )
|
|
throw new IllegalArgumentException( "supplied filename to FileUtil was null" );
|
|
return readCharacterFile( new FileReader( fileName ) );
|
|
}
|
|
|
|
/**
|
|
* read the supplied file in its entirety into a string
|
|
*
|
|
* @param the file object to read characters from
|
|
* @return a string holding the file contents
|
|
* @exception IOException reports problems that occurred
|
|
*/
|
|
public String readCharacterFile( File theFile ) throws IOException {
|
|
if( theFile == null )
|
|
throw new IllegalArgumentException( "supplied File object to FileUtil was null" );
|
|
return readCharacterFile( new FileReader( theFile ) );
|
|
}
|
|
|
|
/**
|
|
* read the supplied reader in its entirety into a string
|
|
*
|
|
* @param the Reader object to read characters from
|
|
* @return a string holding the file contents
|
|
* @exception IOException reports problems that occurred
|
|
*/
|
|
public String readCharacterFile( Reader theReader ) throws IOException {
|
|
if( theReader == null )
|
|
throw new IllegalArgumentException( "supplied Reader object to FileUtil was null" );
|
|
|
|
try {
|
|
StringWriter sw = new StringWriter();
|
|
char[] text = new char[kFILEBUFSIZE];
|
|
int n;
|
|
while( ( n = theReader.read( text, 0, kFILEBUFSIZE ) ) > 0 )
|
|
sw.write( text, 0, n );
|
|
|
|
return sw.toString();
|
|
}
|
|
finally {
|
|
if( theReader != null )
|
|
theReader.close();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* write the supplied contents to the named file
|
|
*
|
|
* @param the filename to write string contents to
|
|
* @param the file contents to be written
|
|
* @exception IOException reports problems that occurred
|
|
*/
|
|
public void writeCharacterFile( String fileName, String contents ) throws IOException {
|
|
if( fileName == null )
|
|
throw new IllegalArgumentException( "supplied filename to FileUtil was null" );
|
|
writeCharacterFile( new FileWriter( fileName ), contents );
|
|
}
|
|
|
|
/**
|
|
* write the supplied contents to the named file
|
|
*
|
|
* @param the File object to write string contents to
|
|
* @param the file contents to be written
|
|
* @exception IOException reports problems that occurred
|
|
*/
|
|
public void writeCharacterFile( File file, String contents ) throws IOException {
|
|
if( file == null )
|
|
throw new IllegalArgumentException( "supplied File object to FileUtil was null" );
|
|
writeCharacterFile( new FileWriter( file ), contents );
|
|
}
|
|
|
|
/**
|
|
* write the supplied contents to the name file
|
|
*
|
|
* @param the Writer object to write string contents to
|
|
* @param the file contents to be written
|
|
* @exception IOException reports problems that occurred
|
|
*/
|
|
public void writeCharacterFile( Writer fileWriter, String contents ) throws IOException {
|
|
if( fileWriter == null )
|
|
throw new IllegalArgumentException( "supplied FileWriter to FileUtil was null" );
|
|
|
|
try {
|
|
StringReader sr = new StringReader( contents );
|
|
char[] text = new char[kFILEBUFSIZE];
|
|
int n;
|
|
while( ( n = sr.read( text, 0, kFILEBUFSIZE ) ) > 0 )
|
|
fileWriter.write( text, 0, n );
|
|
}
|
|
finally {
|
|
if( fileWriter != null )
|
|
fileWriter.close();
|
|
}
|
|
}
|
|
}
|