Вот пример кода для чтения / записи по одному символу за раз
public class CopyCharacters {
public static void main(String[] args) throws IOException {
FileReader inputStream = null;
FileWriter outputStream = null;
try {
inputStream = new FileReader("xanadu.txt");
outputStream = new FileWriter("characteroutput.txt");
int c;
while ((c = inputStream.read()) != -1) {
outputStream.write(c);
}
} finally {
if (inputStream != null) {
inputStream.close();
}
if (outputStream != null) {
outputStream.close();
}
}
}
}
Обратите внимание, этот ответ был обновлен, чтобы скопировать пример кода из ссылки Ref, но я вижу, что по сути это тот же ответ, который приведен ниже.
исх:
http://download.oracle.com/javase/tutorial/essential/io/charstreams.html