| Implementing Native Methods

## The Character Replacement Program

> The example highlighted in this lesson implements a simple "character-replace" program called `Replace`. You invoke the program with four command line arguments:
> - `char1`
> - `char2`
> - `inputfile`
> - `outputfile`
> The `Replace` program reads from inputfile, replaces all occurrences of char1 with char2, and writes the results to outputfile.

> The `Replace` program was originally written by Eugene Kuerner for the alpha version of Java. It's been updated to run with the latest Java release.

> #### The Source Files

> > Replace.java
> >   Contains the main program.
> > File.java
> >   Defines a class named File. This class provides basic file and path manipulation with the expectation that subclasses will provide the actual file management code depending on the file semantics they want to present. InputFile and OutputFile both derive from File.
> > InputFile.java
> >   Contains the InputFile class (a subclass of File), which implements a read-only input file. This class declares three native methods whose implementations are written in the C programming language and provided in `InputFileImpl.c`.
> > OutputFile.java
> >   Contains the OutputFile class (a subclass of File) that implements a write-only output file. This class declares three native methods whose implementations are written in the C programming language and provided in `OutputFileImpl.c`.

> #### Files Generated by `javah`

> > File.h
> > InputFile.h
> > OutputFile.h
> >   C header files generated by `javah`.
> > File.c
> > InputFile.c
> > OutputFile.c
> >   C stub files generated by `javah -stubs`.

> #### Instructions

> 1. Compile the `.java` files into `.class` files using the Java compiler.
> 2. Compile all of the C code into a dynamically loadable library named "file". If you don't know how to do this, look at the instructions in Step 6: Create a Dynamically Loadable Library in the Step By Step lesson.
> 3. Run the program using the Java interpreter.

| Table of Contents