This shows you the differences between two versions of the page.
|
java:buffered_io [2017/02/07 12:19] gthanos [Διαβάζοντας και γράφοντας περισσότερα από ένα bytes σε δυαδικό αρχείο] |
java:buffered_io [2017/02/07 12:30] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Buffered I/O ====== | ||
| - | |||
| - | Τα περισσότερα από τα παραδείγματα που έχουμε δει μέχρι στιγμής διαβάζουν ή γράφουν ένα byte κάθε φορά (unbuffered streams). Προκειμένου να μπορούμε να χειριζόμαστε περισσότερα δεδομένα σε κάθε κλήση συστήματος, | ||
| - | |||
| - | <code java> | ||
| - | inputStream = new BufferedReader(new FileReader(" | ||
| - | outputStream = new BufferedWriter(new FileWriter(" | ||
| - | </ | ||
| - | |||
| - | Υπάρχουν τέσσερις κλάσεις τύπου buffered stream που χρησιμοποιούνται για να μετατρέψουν unbuffered streams σε buffered streams: Οι [[http:// | ||
| - | |||
| - | |||
| - | |||
| - | ===== Διαβάζοντας και γράφοντας γραμμή-γραμμή σε αρχείο κειμένου ===== | ||
| - | |||
| - | Η διαδικασία ανάγνωσης ή διαβάσματος χαρακτήρων λαμβάνουν χώρα συνήθως σε ομάδες χαρακτήρων. Μια συνηθισμένη | ||
| - | |||
| - | Ας τροποποιήσουμε το παράδειγμα // | ||
| - | |||
| - | Το παράδειγμα [[CopyLines]] επικαλείται τις BufferedReader.readLine και PrintWriter.println για να διαβάσει και να γράψει μία γραμμή κάθε φορά. | ||
| - | |||
| - | <code java CopyLines.java> | ||
| - | import java.io.*; | ||
| - | |||
| - | public class CopyLines { | ||
| - | public static void main(String[] args) throws IOException { | ||
| - | |||
| - | BufferedReader inputStream = null; | ||
| - | PrintWriter outputStream = null; | ||
| - | |||
| - | try { | ||
| - | String filename; | ||
| - | if(args.length > 0) | ||
| - | filename = args[0]; | ||
| - | else | ||
| - | filename = " | ||
| - | | ||
| - | inputStream = new BufferedReader(new FileReader(filename)); | ||
| - | outputStream = new PrintWriter(new FileWriter(" | ||
| - | |||
| - | String l; | ||
| - | while ((l = inputStream.readLine()) != null) { | ||
| - | outputStream.println(l); | ||
| - | } | ||
| - | } finally { | ||
| - | if (inputStream != null) { | ||
| - | inputStream.close(); | ||
| - | } | ||
| - | if (outputStream != null) { | ||
| - | outputStream.close(); | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | Η κλήση της // | ||