/* Copy.java
*
* Bruce M. Bolden
* October 21 1997
* Updated: February 18, 1998
* http://www.cs.uidaho.edu/~bruceb/
*
*/
/** Run Times (PowerMac 225 MHz 604e
In FileReaderWriter():
Copy time: 0.779
In FileStreamReadWrite():
Copy time: 1.534
In FileStreamInputPrint():
Copy time: 0.841
In BufferedFileStreamReadPrint():
Copy time: 0.262
*/
import java.io.*;
public class Copy {
/** Input file name.
*/
static String inFileName = "test.in";
static long tStart;
static long tEnd;
static double dT;
/** Copy a file using four different methods.
*/
public static void main(String args[])
{
FileReaderWriter();
FileStreamReadWrite();
FileStreamInputPrint();
BufferedFileStreamReadPrint();
System.out.println( "Done!" );
}
/** Copy using File Reader/Writer classes.
*/
public static void FileReaderWriter()
{
String outFileName = "test.out";
FileReader fR;
FileWriter fW;
System.out.println( "In FileReaderWriter():" );
tStart = System.currentTimeMillis();
try {
fR = new FileReader( inFileName );
fW = new FileWriter( outFileName );
int i = 0;
while( i != -1 )
{
i = fR.read();
if( i != -1 ) // remove this---see what happens
fW.write( i );
}
fW.close();
fR.close();
}
catch (java.io.IOException ioe) {
System.out.println( "IO error: " + ioe );
}
tEnd = System.currentTimeMillis();
dT = (tEnd - tStart) / 1000.0;
System.out.println( "\tCopy time: " + dT );
}
/** Copy using FileInput/Output stream classes.
*/
public static void FileStreamReadWrite()
{
String outFileName = "test2.out";
FileInputStream fIS;
FileOutputStream fOS;
System.out.println( "In FileStreamReadWrite():" );
tStart = System.currentTimeMillis();
try {
fIS = new FileInputStream( inFileName );
fOS = new FileOutputStream( outFileName );
int i = 0;
while( i != -1 )
{
i = fIS.read();
if( i != -1 ) // remove this---see what happens
fOS.write( i );
}
fIS.close();
fOS.close();
}
catch (java.io.IOException ioe) {
System.out.println( "IO error: " + ioe );
}
tEnd = System.currentTimeMillis();
dT = (tEnd - tStart) / 1000.0;
System.out.println( "\tCopy time: " + dT );
}
/** Copy using Buffered Reader/Writer class.
*/
public static void BufferedFileStreamReadPrint()
{
String outFileName = "test3.out";
FileReader fIS;
FileWriter fW;
System.out.println( "In BufferedFileStreamReadPrint():" );
tStart = System.currentTimeMillis();
try {
fIS = new FileReader( inFileName );
BufferedReader inStream = new BufferedReader( fIS );
fW = new FileWriter(outFileName);
PrintWriter outStream = new PrintWriter(new BufferedWriter(fW));
// url.openStream
String line;
//
while( (line = inStream.readLine()) != null )
{
outStream.println( line );
}
inStream.close();
outStream.close();
}
catch (java.io.IOException ioe) {
System.out.println( "IO error: " + ioe );
}
tEnd = System.currentTimeMillis();
dT = (tEnd - tStart) / 1000.0;
System.out.println( "\tCopy time: " + dT );
}
/** Uses old style FileInput/Output Stream classes.
*/
public static void FileStreamInputPrint()
{
String outFileName = "test4.out";
FileInputStream fIS;
FileOutputStream fOS;
System.out.println( "In FileStreamInputPrint():" );
tStart = System.currentTimeMillis();
try {
fIS = new FileInputStream( inFileName );
fOS = new FileOutputStream( outFileName );
DataInputStream inStream = new DataInputStream( fIS );
// PrintStream has been deprecated
PrintStream outStream = new PrintStream( fOS );
String line;
// readLine has been deprecated
while( (line = inStream.readLine()) != null )
{
outStream.println( line );
}
inStream.close();
outStream.close();
}
catch (java.io.IOException ioe) {
System.out.println( "IO error: " + ioe );
}
tEnd = System.currentTimeMillis();
dT = (tEnd - tStart) / 1000.0;
System.out.println( "\tCopy time: " + dT );
}
/*
WriteInBinOctHex();
void WriteInBinOctHex()
{
int i;
for( i = 0 ; i <= 16 ; i++ )
{
System.out.print( i + " " );
System.out.print( Integer.toString(i,2) + " " );
System.out.print( Integer.toString(i,8) + " " );
System.out.println( Integer.toString(i,16) );
}
}
*/
}