====== Buffered I/O ====== Τα περισσότερα από τα παραδείγματα που έχουμε δει μέχρι στιγμής διαβάζουν ή γράφουν ένα byte κάθε φορά (unbuffered streams). Προκειμένου να μπορούμε να χειριζόμαστε περισσότερα δεδομένα σε κάθε κλήση συστήματος, η πλατφόρμα της Java υλοποιεί //buffered// I/O streams. Παρακάτω δίνεται πώς μπορείτε να τροποποιήσετε τις κλήσεις constructor στο παράδειγμα //CopyCharacters// για να χρησιμοποιούν buffered I/O: inputStream = new BufferedReader(new FileReader("xanadu.txt")); outputStream = new BufferedWriter(new FileWriter("characteroutput.txt")); Υπάρχουν τέσσερις κλάσεις τύπου buffered stream που χρησιμοποιούνται για να μετατρέψουν unbuffered streams σε buffered streams: Οι [[http://docs.oracle.com/javase/7/docs/api/java/io/BufferedInputStream.html|BufferedInputStream]] και [[http://docs.oracle.com/javase/7/docs/api/java/io/BufferedOutputStream.html|BufferedOutputStream]] δημιουργούν buffered byte streams, ενώ οι [[http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html|BufferedReader]] και [[http://docs.oracle.com/javase/7/docs/api/java/io/BufferedWriter.html|BufferedWriter]] δημιουργούν buffered streams χαρακτήρων.