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