import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;

public class File_RW_byByte {

    // Метод main генерирует исключение
    public static void main(String[] args) throws IOException {

        Reader in = null;      // поток для чтения
        Writer out = null;     // поток для записи

        try {
            // файл для чтения
            in = new FileReader("Files/MyFile1.txt");

            // файл для записи (true — разрешено добавление в конец)
            out = new FileWriter("Files/MyFile2.txt", true);

            // Данные считываются и записываются посимвольно
            int oneByte;   // переменная, в которую считываются данные

            while ((oneByte = in.read()) != -1) {
                // out.write((char) oneByte); // запись с уничтожением ранее существующих данных
                out.append((char) oneByte);  // запись с добавлением данных в конец
                System.out.print((char) oneByte);
            }

        } catch (IOException e) {
            System.out.println("Ошибка!!!! ");
        } finally {
            // корректное закрытие потоков
            if (in != null) {
                in.close();
            }
            if (out != null) {
                out.close();
            }
        }
    }
}
