java:buffered_io
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| java:buffered_io [2017/02/07 11:22] – created gthanos | java:buffered_io [2017/02/07 12:30] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Buffered I/O ====== | ====== Buffered I/O ====== | ||
| - | Τα περισσότερα από τα παραδείγματα που έχουμε δει μέχρι στιγμής | + | Τα περισσότερα από τα παραδείγματα που έχουμε δει μέχρι στιγμής |
| - | + | ||
| - | Για να μειωθεί | + | |
| - | + | ||
| - | Ένα πρόγραμμα μπορεί να μετατρέψει ένα unbuffered stream | + | |
| <code java> | <code java> | ||
| Line 15: | Line 11: | ||
| - | ===== Διαβάζοντας και γράφοντας περισσότερα bytes σε δυαδικό αρχείο ===== | ||
| - | |||
| - | Παρακάτω θα ξαναγράψουμε το πρόγραμμα CopyBytes μόνο που αυτή τη φορά το διάβασμα των bytes δεν θα γίνει ένα-ένα (unbuffered), | ||
| - | |||
| - | <code java CopyBufferedBytes.java> | ||
| - | import java.io.*; | ||
| - | |||
| - | public class CopyBufferedBytes { | ||
| - | public static void main(String[] args) throws IOException { | ||
| - | |||
| - | BufferedInputStream in = null; | ||
| - | BufferedOutputStream out = null; | ||
| - | final int buffer_size = 256; | ||
| - | byte []buffer = new byte[buffer_size]; | ||
| - | |||
| - | try { | ||
| - | String filename; | ||
| - | if(args.length > 0) | ||
| - | filename = args[0]; | ||
| - | else | ||
| - | filename = " | ||
| - | | ||
| - | in = new BufferedInputStream(new FileInputStream(filename)); | ||
| - | out = new BufferedOutputStream(new FileOutputStream(" | ||
| - | int size; | ||
| - | |||
| - | while ((size = in.read(buffer, | ||
| - | out.write(buffer, | ||
| - | } | ||
| - | } finally { | ||
| - | if (in != null) { | ||
| - | in.close(); | ||
| - | } | ||
| - | if (out != null) { | ||
| - | out.close(); | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | ===== Διαβάζοντας και γράφοντας γραμμή-γραμμή σε αρχείο κειμένου ===== | ||
| - | |||
| - | Η διαδικασία ανάγνωσης ή διαβάσματος χαρακτήρων λαμβάνουν χώρα συνήθως σε ομάδες χαρακτήρων. Μια συνηθισμένη | ||
| - | |||
| - | Ας τροποποιήσουμε το παράδειγμα // | ||
| - | |||
| - | Το παράδειγμα [[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(); | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | </ | ||
| - | Η κλήση της // | ||
java/buffered_io.1486466568.txt.gz · Last modified: 2017/02/07 11:22 by gthanos
