We can read and write files with FileInputStream, which goes character by character.

public class Stream {

 public static void main(String[] args) throws IOException {

     FileInputStream in = null;

     FileOutputStream out = null;

     try {

         in = new FileInputStream("entrada.txt");

         out = new FileOutputStream("sortida.txt");

         int c;

         while ((c = in.read()) != -1) {

             System.out.println(c);

             out.write(c);

         }

     } finally {

         if (in != null) {

             in.close();

         }

         if (out != null) {

             out.close();

         }

     }

 }

}

or we can use buffered reads.

public class ReaderWriter {

 public static void main(String[] args) throws IOException {

     BufferedReader inputStream = null;

     PrintWriter outputStream = null;

     try {

         inputStream = new BufferedReader(new FileReader("entrada.txt"));

         outputStream = new PrintWriter(new FileWriter("sortida.txt"));

         String l;

         while ((l = inputStream.readLine()) != null) {

             System.out.println(l);

             outputStream.println(l);

         }

     } finally {

         if (inputStream != null) {

             inputStream.close();

         }

         if (outputStream != null) {

             outputStream.close();

         }

     }

 }

}